为什么在c# winforms中在SuspendLayout之前初始化组件

本文关键字:初始化 组件 SuspendLayout 中在 winforms 为什么 | 更新日期: 2023-09-27 18:09:05

我正在用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之前初始化对象有什么特殊的原因吗?

为什么在c# winforms中在SuspendLayout之前初始化组件

这两种方式都不会有什么区别-这并不是说组件已经添加到表单中,所以它不会放置它们,然后暂停布局,然后改变一切。

我怀疑它只是使它更容易生成代码,如果所有的变量都被分配和,然后使用,而不是必须计算是否有任何依赖关系的各种对象之间。

因为不需要事先做。对象初始化与SuspendLayout调用无关,那么为什么之前要这样做呢?即使是自动生成的代码也可以按照逻辑布局。如果我是手工编写代码,我也会做同样的事情,因为同样的原因,我声明变量尽可能靠近它们第一次使用的地方(当然,这个例子会使生成过程更复杂,所以他们只是在开始时初始化它们)。