编辑InitializeComponent()方法C#

本文关键字:方法 InitializeComponent 编辑 | 更新日期: 2023-09-27 18:19:27

我浏览了多个资源,试图找到何时手动向InitializeComponent添加代码的用例,但没有找到任何具体的内容。这表明我们不应该这样做-方法中的代码';InitializeComponent';由设计者生成,不应手动修改

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

不使用表单设计器的优点是什么?这只是一个偏好问题吗?手动编辑/重写简单UI元素的InitializeComponent是一种好的做法吗?

谢谢!

编辑InitializeComponent()方法C#

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

  1. 纠正由错误的工具箱项设计器引入的错误
  2. 删除无法从VS设计器中删除的控件的所有跟踪。(这必须小心。)
  3. 进行快速的"设计师友好"调整:更改特性值、添加特性设置或删除特性设置。当添加一个设置时,我会确保它看起来就像设计师生成的代码

编辑InitializeComponent后,我总是保存&切换回设计器模式以确保我没有破坏任何内容。

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