我有一个基类库,其中包含具有扩展功能的所有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设计师那里设置这些颜色的话。
任何错误的想法。
此致
答案 0 :(得分:2)
BackColor属性很特殊,它是一个'ambient'属性。如果从未分配,那么它将自动获取父级BackColor的值。这非常好,当您更改表单的背景颜色时,它会自动使所有子控件背景颜色正确。其他以这种方式运行的属性是ForeColor,Cursor和Font。
听起来这是你的问题。首先查看在“属性”窗口中未正确着色的控件的BackColor属性。如果以粗体显示,则右键单击它并选择“重置”。查看InitializeComponent()方法并搜索BackColor分配是一种快速查找它们的方法。
接下来,检查您的自定义控件是否明确指定了BackColor属性。
答案 1 :(得分:0)
检查CUtility.GetBackColor()在设置为面板时返回值