考虑TabelLayoutPanel
。我使用Visual Studio设计器将其添加到Form1
,并将Dock
属性设置为Fill
。即使我使用Dock
属性设置了大小,Size
属性也设置在Form1.Designer.cs
this.tableLayoutPanel.Dock = System.Windows.Forms.DockStyle.Fill;
this.tableLayoutPanel.Size = new System.Drawing.Size(1000, 800);
为什么?为什么设计师添加这条线? Dock
属性不够吗?基于此,如果我动态创建此TableLayoutPanel
,我应该同时设置Dock
和Size
吗?
答案 0 :(得分:1)
您无需设置Size
。设置Dock
就足够了。
设计器序列化所有值与其默认值不同的属性。自设置Dock
属性更改Size
以来,设计师也将其序列化。
如果您将Dock
设置为None
,将来会使用序列化尺寸。在运行时设置停靠控件的大小也没有任何效果。
答案 1 :(得分:1)
为什么设计师会添加这一行?
这是控件设计者内心工作的结果。 Visual Studio设计器将每个未设置为其默认值的属性。最终Size
的默认值boils down to the default value of Control.Size
,未指定。因此,设计师始终生成。请参阅示例TabStop
,其中指定了默认值:仅在设计器中将其设置为false
将生成代码。
它会对TableLayoutPanel
的视觉效果产生任何影响吗?否。