Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
编辑InitializeComponent()方法C#_C#_Winforms_Windows Forms Designer - Fatal编程技术网

编辑InitializeComponent()方法C#

编辑InitializeComponent()方法C#,c#,winforms,windows-forms-designer,C#,Winforms,Windows Forms Designer,我查阅了多个参考资料,试图找到何时向InitializeComponent手动添加代码的用例,但没有找到任何具体的内容。这表明我们不应该这样做- 过去,我一直使用表单设计器,从不需要手动更改InitializeComponent()。然而,在我的新公司,技术负责人完全忽略了表单设计器,并在InitializeComponent中手动添加了大多数UI元素(即,它要么被大量编辑,要么被完全重新编写,以至于设计者无法在VS中重新创建GUI,但GUI在代码执行时是可见的且功能齐全的) 不使用表单设计器的

我查阅了多个参考资料,试图找到何时向InitializeComponent手动添加代码的用例,但没有找到任何具体的内容。这表明我们不应该这样做-

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

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


谢谢

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

  • 纠正错误工具箱项设计器引入的错误
  • 删除无法从VS设计器中删除的控件的所有跟踪。(这必须小心进行。)
  • 要快速进行“设计器友好”调整,请更改属性值、添加属性设置或删除属性设置。在添加设置时,我要确保它看起来与设计器生成的代码一样
  • 在编辑InitializeComponent之后,我总是保存并切换回Designer模式,以确保我没有破坏任何东西


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

    据我所知,两个主要缺点:您丢失了设计视图,因此不知道组件的外观,更糟糕的是,任何代码的重建都可能清除所有自定义更改。在我看来,对于一个不知道或不了解后果的人来说,这真是一个糟糕的选择,我不会这么做。想知道他们这样做的原因是什么。基本上是通过你的设计师。它可以更快地编辑代码。将其编辑到设计师无法再正确解析的程度,对团队中喜欢使用设计师的其他人来说都是一种粗暴的行为。这是你们的团队必须解决的问题,这里没有人能帮助你们。谢谢大家,这非常有帮助。不知道为什么我被投了反对票——事实上,由于投了反对票,我有动力删除这篇文章。没有很多经验的人不总是会觉得这很有帮助吗?我当然做到了:S