编辑InitializeComponent()方法C#

时间:2015-10-26 14:59:28

标签: c# winforms windows-forms-designer

我在尝试查找何时手动将代码添加到InitializeComponent的用例时经历了多个资源,但没有找到具体的内容。这表明我们不应该这样做 - The code within the method 'InitializeComponent' is generated by the designer and should not be manually modified

过去,我一直使用表单设计器,从不需要手动更改InitializeComponent()。然而,在我的新公司,技术主管完全忽略了表单设计器并在InitializeComponent中手动添加了大多数UI元素(即它已经过大量编辑,或者完全重写,因为Designer无法重新创建GUI VS,但是GUI在执行代码时是可见的并且完全正常工作)

不使用表单设计器有什么好处?这只是一个偏好问题吗?手动编辑/重写InitializeComponent对于简单的UI元素是一个好习惯吗?

谢谢!

1 个答案:

答案 0 :(得分:3)

为什么可能需要编辑InitializeComponent只有几个原因,例如:

  1. 纠正错误的工具箱项设计者引入的错误。
  2. 删除无法从VS设计器中删除的控件的所有痕迹。 (这必须仔细完成。)
  3. 快速进行“设计师友好”调整:更改属性值,添加属性设置或删除属性设置。添加设置时,我确保它看起来就像设计器生成的代码。
  4. 编辑InitializeComponent后,我总是保存&切换回Designer模式以确保我没有破坏任何东西。

    任何手动初始化代码都应该在InitializeComponent之外添加,例如WinForms表单或用户控件中的OnLoaded()。至于修复现有表单,根据表单的复杂程度可能很简单或几乎不可能,特别是如果手动添加了控件并且没有调用所需的初始化方法(如SuspendLayout,BeginInit)。