【发布时间】:2015-10-06 20:12:47
【问题描述】:
【问题讨论】:
-
如果您可以控制自定义控件的源,请给它一个公共属性来更改该颜色,因为它可以访问其子控件。
【问题讨论】:
选项 1:
您可以公开您的TextBox。为此,请转到用户控件的设计器,然后选择 Modifier 属性并将值设置为 public。
现在您可以不受控制地访问它。例如,如果您有一个名为 userControl1 的用户控件实例,并且您的文本框的名称是 txtb:
userControl1.txtb.BackColor = Color.Red;
选项 2:
作为另一种选择,您可以创建一个公共属性并在该属性中获取或设置您的文本框颜色。
public Color TextBoxBackColor
{
get
{
return txtb.BackColor;
}
set
{
txtb.BackColor = value;
}
}
现在您可以不受控制地访问此属性。例如,如果您有一个名为 userControl1 的用户控件实例:
userControl1.TextBoxBackColor = Color.Red;
【讨论】:
BackColor 属性的访问.
由于您正在构建用户控件,因此可以将更改文本框的颜色视为控件的一项功能,并且可以通过添加属性来提供给客户端。
[Browsable(true)] // allows you to change it in the designer
public Color TextBoxBackColor
{
get { return txtb.BackColor; }
set { txtb.BackColor = value; }
}
【讨论】:
Browsable。