“InitializeComponent”方法中的代码由设计者生成,不应手动修改。
Posted
技术标签:
【中文标题】“InitializeComponent”方法中的代码由设计者生成,不应手动修改。【英文标题】:The code within the method 'InitializeComponent' is generated by the designer and should not be manually modified. 【发布时间】:2014-08-16 04:26:06 【问题描述】:我在打开 Winform 的设计时遇到此错误。
消息 1244 设计器无法处理第 108 行的代码: this.cancelButton.DialogResult = DialogResult.Cancel; 请删除所有更改并尝试重新打开设计器。
但是当我从designer.cs中删除这段代码或将其更改为
this.cancelButton.DialogResult = System.windows.Forms.DialogResult.Cancel;
它有效。我的问题是我在许多地方的解决方案中几乎所有的winforms都有这个问题。我怎样才能在所有地方解决这个问题?反正?
【问题讨论】:
InitializeComponent 方法中的代码由设计者生成,不应手动修改。您需要从它们所在的所有位置删除对此方法的任何更改。也就是说,如果您希望在设计器中打开这些表单。 你应该听从@zespri 的建议。一个肮脏的方法尝试将using System.windows.Forms;
添加到Designer.cs
文件中
没有其他方法可以解决这个问题吗?因为这是解决方案的许多地方。我已经在每个表单的 Designer.cs 中使用了 system.windows.forms。
@user1487911 看看我的解决方案,这是解决问题的另一种推荐方法。
【参考方案1】:
@zespri 和@bansi 的建议是一些不错的建议,但建议您在InitializeComponent()
之后在您的构造函数 中进行所有自定义构造时间设计。
【讨论】:
您好,我也有同样的问题...我不明白您的解决方案,您能解释一下吗? OP遇到了这个问题,因为designer.cs没有using System.windows.Forms
,所以设计器不会被编译,导致渲染失败。更好的方法是将所有自定义代码放入表单的构造函数中,这样即使你的一些初始化逻辑出错(运行程序时肯定会失败),设计器编译和渲染也不会失败。
所以你的建议是我需要将我的公共类文件(例如:mycombobox cutom code)放在每个 form.cs 类文件的构造函数中以避免这个问题?
当我尝试上述过程时,它会显示与代表相关的不同错误。以上是关于“InitializeComponent”方法中的代码由设计者生成,不应手动修改。的主要内容,如果未能解决你的问题,请参考以下文章
InitializeComponent()的非常简单的定义;方法
WPF 中 InitializeComponent 不存在解决方案