C# 方法中的代码';初始化组件';由设计器生成,不应手动修改。

C# 方法中的代码';初始化组件';由设计器生成,不应手动修改。,c#,asp.net,.net,winforms,c#-4.0,C#,Asp.net,.net,Winforms,C# 4.0,当我打开Winform的设计时,我遇到了这个错误 消息1244设计器无法处理第108行的代码: this.cancelButton.DialogResult=DialogResult.Cancel; “InitializeComponent”方法中的代码由设计器生成,不应手动修改。请删除所有更改,然后再次尝试打开设计器。 但是当我从designer.cs中删除这段代码或将其更改为 this.cancelButton.DialogResult=System.windows.Forms.Dialog

当我打开Winform的设计时,我遇到了这个错误

消息1244设计器无法处理第108行的代码: this.cancelButton.DialogResult=DialogResult.Cancel;
“InitializeComponent”方法中的代码由设计器生成,不应手动修改。请删除所有更改,然后再次尝试打开设计器。

但是当我从designer.cs中删除这段代码或将其更改为

this.cancelButton.DialogResult=System.windows.Forms.DialogResult.Cancel


它起作用了。我的问题是,在很多地方,几乎所有的winforms都有这个问题。我如何在所有地方解决此问题?有办法吗

来自@zespri和@bansi的建议是一些不错的建议,但是建议您在
InitializeComponent()之后,在构造函数中进行所有定制的构造时设计,
InitializeComponent()方法中的代码是由设计者生成的,不应手动修改。您需要从存在此方法的所有位置删除此方法的任何更改。也就是说,如果您希望在设计器中打开这些表单,您应该遵循@zespri的建议。脏方法尝试使用System.windows.Forms添加
Designer.cs
文件没有其他方法解决此问题吗?因为这是在很多地方解决的。我已经在每个表单的designer.cs中使用过system.windows.forms。@user1487911看看我的解决方案,这是另一种建议的解决方法。嗨,我也有同样的问题。。。我不理解您的解决方案。您能解释一下吗?OP遇到了问题,因为designer.cs没有使用System.windows.Forms的
,因此设计器不会被编译,因此渲染失败。更好的方法是将所有自定义代码放入表单的构造函数中,这样即使某些初始化逻辑出错,设计器编译和呈现也不会失败(运行程序时肯定会失败)。因此,您建议我需要将我的公共类文件(例如:mycombobox cutom代码)在每个form.cs类文件的构造函数内部,以避免此问题?当我尝试上述过程时,它会显示与委托相关的不同错误。