c# - 刷新一个控件

标签 c# winforms controls paint doevents

我正在尝试更改链接标签的前景色,但颜色不会以图形方式更改。

我有一个计时器来更新控件的前景色

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

更新成功,在调试时,我可以看到myLbl的前景色属性不同。那么为什么不以图形方式更改它呢?

我也尝试过

MyLbl.ForeColor = Color.Gray;

并尝试在更改前景色后添加Application.DoEvents()。

有什么解决办法吗?

最佳答案

与普通标签不同,链接标签不以这种方式使用 ForeColor 属性来为其文本着色。

使用LinkColor相反,属性(property)。

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

就您而言,您需要:

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

请注意,这不是更新问题 - 您不必显式调用 Application.DoEvents(这几乎从来都不是正确的做法)或 Invalidate 或 Refresh 来获取链接标签以响应颜色变化。

关于c# - 刷新一个控件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8956481/

相关文章:

c# - 在 C# 中的用户控件中公开和引发子控件的事件

c# - 如何从另一个表单引用我的 Bing map 元素?

c++ - 有什么方法可以将 CString 以外的对象添加到 MFC 中的 CComboBox 中吗?

c# - Linq 表达式中的条件运算符导致 NHibernate 异常

c# - 从 EventStore 获取事件

c# - 调用基本构造函数 C# 时出错

PHP 从 MySQL 获取下一个结果

c# - MVVM WPF 中的数据绑定(bind) - devexpress

c# - 动态更改 ToolStrip 按钮位置

asp.net-mvc - 在 ASP.NET MVC3 中使用无 session Controller 的优势是什么?