如何在VB.NET中覆盖系统默认标签forecolor

时间:2014-12-22 06:36:44

标签: vb.net colors label default

是否可以更改标签的“默认”前色?

我知道我可以在设计时间或运行时间逐个更改每个控件,但我想知道是否有更好的方法。

我可以在运行时执行此操作

lblCompanyName.ForeColor = color.darkblue

我还可以有一个循环来查看表单上的所有控件,并在一小段代码中更改它们,但仍然有更好的方法。

我在设计时看到“默认”标签forecolor是“ControlText”所以我可以将ControlText改为等于color.darkblue然后我的所有标签都是深蓝色而不需要一次编码一个控件(或在循环内)。

三江源 大卫。

1 个答案:

答案 0 :(得分:1)

您无法为标准Label控件更改它,但您始终可以创建自己的类继承Label,然后在构造函数中设置ForeColor属性。然后,您将使用该控件而不是Label

编辑:

如果要在运行时更改所有Label控件的文本颜色,则应使用绑定的应用程序设置。在项目属性的“设置”页面上,添加一个类型为Color的设置,其中包含用户范围,并将其命名为LabelForeColor或其他内容(如果您愿意)。现在,在设计器中选择Label,打开“属性”窗口并使用(ApplicationSettings) - > (PropertyBindings)节点将ForeColor属性绑定到您创建的设置。

然后,您可以通过My.Settings.LabelForeColor在代码中访问该设置,并且绑定到它的任何Label都将自动更新。您可以根据需要在尽可能多的不同表单上绑定多个不同的Label控件。您一次只能绑定一个,因此我建议复制并粘贴现有的绑定Label,而不是每次都添加一个新绑定。如果您有现有的Label控件并且您有足够的信心,则可以在设计器代码文件中复制,粘贴和编辑绑定代码。

在这种情况下使用自定义控件确实没有意义,因为设置无论如何都会控制每个控件。无论你在构造函数中设置什么值,它仍然会被绑定设置设置。请注意,您对设置所做的任何更改都将在关机时自动保存,并在启动时重新加载。