编辑 InitializeComponent() 方法 C#

Editing the InitializeComponent() method C#

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

过去,我一直使用窗体设计器,从来不需要手动更改 InitializeComponent()。然而,在我的新公司,技术负责人完全忽略了表单设计器,并在 InitializeComponent 中手动添加了大多数 UI 元素(即它已经被大量编辑,或者完全重写到设计器无法做到的程度在 VS 中重新创建 GUI,但 GUI 在执行代码时可见且功能齐全)

不使用表单设计器有什么好处?这只是一个偏好问题吗?为简单的 UI 元素手动 editing/rewriting InitializeComponent 是一个好习惯吗?

谢谢!

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

  1. 纠正由糟糕的工具箱项目设计者引入的错误。
  2. 删除无法从VS设计器中删除的控件的所有痕迹。 (这必须小心完成。)
  3. 快速 "designer friendly" 调整:更改 属性 值、添加 属性 设置或删除 属性 设置。添加设置时,我确保它看起来就像设计师生成的代码。

编辑 InitializeComponent 后,我​​总是保存并切换回设计器模式以确保我没有破坏任何东西。

任何手动初始化代码都应该添加到 InitializeComponent 之外,例如WinForms 窗体或用户控件中的 OnLoaded()。至于修复现有表单,这可能很简单,也可能几乎不可能,具体取决于表单的复杂程度,尤其是在手动添加控件并且未调用所需的初始化方法(例如 SuspendLayout、BeginInit)的情况下。