我正在使用c#.Net fw-3.5,
设计一个Windows窗体我已经通过designer.cs文件中的c#检查生成的代码
this.label1 = new System.Windows.Forms.Label();
this.button1 = new System.Windows.Forms.Button();
this.textBox1 = new System.Windows.Forms.TextBox();
this.SuspendLayout();
在SuspendLayout命令之后,所有组件属性都在分配。
我的问题:这是在SuspendLayout之前初始化对象的任何特殊原因吗?
答案 0 :(得分:2)
这两种方式实际上都没有任何区别 - 它不像组件已经添加到表单,所以它不会放置它们,然后暂停布局,然后更改所有内容
我怀疑如果分配了所有变量并且然后使用了代码,就会更容易生成代码,而不是必须弄清楚各个对象之间是否存在任何依赖关系。 / p>
答案 1 :(得分:1)
因为没有必要事先做。对象初始化与SuspendLayout
调用无关,那么为什么之前呢?即使是自动生成的代码也可以逻辑布局。如果我手工编写代码,我会做同样的事情,因为我声明变量尽可能接近它们首次使用的位置(当然,这个例子会使生成过程变得更复杂,所以它们只是在开始时初始化它们。)