如何阻止Visual Studio 2017更新设计器文件?

时间:2017-07-19 10:32:50

标签: winforms visual-studio visual-studio-2017 windows-forms-designer

我需要重新设计旧的Windows窗体应用程序。所以我决定创建一个自定义按钮控件。

我们说我为该自定义按钮定义了一个红色的背景颜色。当我这样做时:

  • 将该按钮放在表单上
  • 编辑任何其他控件的属性
  • 保存项目

Visual Studio将自动更新设计器文件并附加:

this.btnCustom.BackColor = System.Drawing.Color.Red;

我不希望这种情况发生。这应仅在CustomButton类中编码,而不是在设计器文件中编码。如果我决定将按钮颜色更改为蓝色,这将是一个大问题。然后,改为仅在CustomButton类中更改颜色,我必须手动更改每个按钮的颜色。有什么方法可以阻止这种情况吗?

1 个答案:

答案 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,则会在所使用的任何位置更改它。