我需要重新设计旧的Windows窗体应用程序。所以我决定创建一个自定义按钮控件。
我们说我为该自定义按钮定义了一个红色的背景颜色。当我这样做时:
Visual Studio将自动更新设计器文件并附加:
this.btnCustom.BackColor = System.Drawing.Color.Red;
我不希望这种情况发生。这应仅在CustomButton类中编码,而不是在设计器文件中编码。如果我决定将按钮颜色更改为蓝色,这将是一个大问题。然后,改为仅在CustomButton类中更改颜色,我必须手动更改每个按钮的颜色。有什么方法可以阻止这种情况吗?
答案 0 :(得分:1)
如果您的CustomControl代码是这样的:
public partial class UserControl1 : UserControl
{
public UserControl1()
{
InitializeComponent();
}
[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
public override Color BackColor
{
get
{
return Color.Red;
}
}
}
然后,当放置在Form上时,设计师不会为BackgroundColor
生成setter:
//
// userControl11
//
this.userControl11.Location = new System.Drawing.Point(67, 131);
this.userControl11.Name = "userControl11";
this.userControl11.Size = new System.Drawing.Size(154, 37);
this.userControl11.TabIndex = 2;
因此,如果您稍后更改CustomControl,则会在所使用的任何位置更改它。