Обновить элемент управления - PullRequest
2 голосов
/ 22 января 2012

Я пытаюсь изменить основной цвет метки ссылки, но цвет не изменяется графически.

У меня есть таймер, который обновляет основной цвет элемента управления

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

обновление прошло успешно, и во время отладки я вижу, что свойство fore color у myLbl отличается.Так почему же он не изменит его графически?

Я также попытался

MyLbl.ForeColor = Color.Gray;

И попытался добавить Application.DoEvents () после изменения цвета переднего плана.

Любые решения?

1 Ответ

4 голосов
/ 22 января 2012

В отличие от ванильных ярлыков, ярлыки ссылок не используют свойство ForeColor таким образом, чтобы окрашивать текст.

Вместо этого используйте свойство LinkColor.

Получает или задает цвет, используемый при отображении обычной ссылки.

В вашем случае вам необходимо:

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

Обратите внимание, что это не проблема обновления - вам не нужно явно вызывать Application.DoEvents (что почти никогда не нужно делать) или Invalidate или Refresh, чтобы получить ссылку на метку ответить на изменение цвета.

...