2

I am trying to change a link label's fore color but the color won't graphically change.

I have a timer that updates the fore color of the control

private void Timer_Tick(object sender, EventArgs e)
    {
        MyLbl.ForeColor = shouldUpdate? Color.Blue: Color.Gray;
    }

The update is successful and while debugging, I can see that the fore color property of myLbl is different. So why doesn't it change it graphically?

I also tried

MyLbl.ForeColor = Color.Gray;

And tried adding Application.DoEvents() after the change of the fore color.

Any solutions?

Jonathon Reinhart
  • 132,704
  • 33
  • 254
  • 328
user779444
  • 1,365
  • 4
  • 21
  • 38

1 Answers1

4

Unlike vanilla labels, link-labels don't use the ForeColor property in this manner to colour their text.

Use the LinkColor property instead.

Gets or sets the color used when displaying a normal link.

In your case, you need:

MyLbl.LinkColor = shouldUpdate? Color.Blue: Color.Gray;

Note that this not an update problem - you don't have to explicitly call Application.DoEvents (which is almost never the right thing to do) or Invalidate or Refresh to get the link-label to respond to the colour-change.

Ani
  • 111,048
  • 26
  • 262
  • 307