未在运行时设置UI控件的值

时间:2010-09-08 08:59:11

标签: c# winforms

我有一个基类库,其中包含具有扩展功能的所有UI控件。

Ex: XTextBox <---derived from------ TextBox
    XPanel   <---derived from------ Panel
    XLabel   <---derived from------ Label

我在客户端应用程序中使用此库来呈现UI上的控件。

我有一个AppConfig文件,用于确定客户端应用程序的字体/颜色。

现在面临的问题是我将字体值设置为基类库中的控件。

例如:XTextBox的背景颜色是从实用程序类 CUtility 中读取的,它从exe.Config文件中读取颜色信息

 this.BackColor = CUtility.GetBackColor();
 //this represents the XTextBox control.

很多时候没有为运行时的某些UI控件设置背景颜色(例如:面板和某些UI控件)

但是如果我是从UI设计师那里设置这些颜色的话。

任何错误的想法。

此致

2 个答案:

答案 0 :(得分:2)

BackColor属性很特殊,它是一个'ambient'属性。如果从未分配,那么它将自动获取父级BackColor的值。这非常好,当您更改表单的背景颜色时,它会自动使所有子控件背景颜色正确。其他以这种方式运行的属性是ForeColor,Cursor和Font。

听起来这是你的问题。首先查看在“属性”窗口中未正确着色的控件的BackColor属性。如果以粗体显示,则右键单击它并选择“重置”。查看InitializeComponent()方法并搜索BackColor分配是一种快速查找它们的方法。

接下来,检查您的自定义控件是否明确指定了BackColor属性。

答案 1 :(得分:0)

检查CUtility.GetBackColor()在设置为面板时返回值