c# - 编辑 InitializeComponent() 方法 C#

标签 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 元素(即它已经被大量编辑,或者完全重写到设计器无法重新创建 GUI 的程度VS,但是在执行代码时 GUI 是可见的并且功能齐全)

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

谢谢!

最佳答案

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

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

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

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

关于c# - 编辑 InitializeComponent() 方法 C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33348930/

相关文章:

winforms - 如何确定文件是否已打开以在 Windows 上追加?

vb.net - 在 VB.NET 中切换 TopMost

c# - 如何从组框中获取选中哪个单选按钮?

winforms - 如何在设计时在用户控件子控件上实现转义键,以便焦点移动到各自的父控件?

c# - 关于 TabControl 中事件特殊性的问题

winforms - 如何在Powershell中添加计时器以在一定时间后退出表单

c# - 如何在 TFS 2012 中锁定迭代?

visual-studio - 控件和标准控件大小之间的标准边距

c# - 加载程序集并更改源代码,这可能吗?如何做?

c# - 如何从 List<int> 中获取重复次数