“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() 调用另一个方法

InitializeComponent()的非常简单的定义;方法

WPF 中 InitializeComponent 不存在解决方案

[解决问题] 当前上下文中不存在名称“InitializeComponent”

vb.net求大神解释

InitializeComponent() 有啥作用,它在 WPF 中如何工作?