2016-12-15 93 views
2

考慮一個TabelLayoutPanel。我使用Visual Studio設計器將它添加到Form1,並將Dock屬性設置爲Fill。儘管我已經使用Dock屬性設置大小,Size屬性也Form1.Designer.cs爲什麼控件在C#Winforms中停靠在其父項時由控件設置的「Size」屬性?

this.tableLayoutPanel.Dock = System.Windows.Forms.DockStyle.Fill; 
this.tableLayoutPanel.Size = new System.Drawing.Size(1000, 800); 

爲什麼會這樣設置?爲什麼設計師添加這條線? Dock屬性不夠?基於此,如果我動態創建TableLayoutPanel,我是否應該設置DockSize

+0

您不需要設置「尺寸」。設置「Dock」就足夠了。 –

+0

@RezaAghaei - 那爲什麼VS自動添加它? – Sipo

+0

現在來吧,停下來看看窗簾後面,這是我們來到的不是老人的嚮導 – MickyD

回答

1

您不需要設置Size。設置Dock就夠了。

設計人員序列化所有具有與其默認值不同的值的屬性。由於設置Dock屬性更改Size,設計師也將其序列化。

如果將Dock設置爲None,則序列化大小將在未來使用。在運行時同時設置停靠控件的大小也沒有任何影響。

+0

**注意:**如果您從控制系統中卸下底座,控制系統將始終使用手動設置的最後尺寸*。因此,如果您在運行時爲停靠控件設置了大小,那麼如果您移除停靠欄,則會使用該大小,否則將使用序列化大小(這是最後一個手動設置的大小)。 –

1

爲什麼設計師添加這一行?

這是控制器設計者內部工作的結果。 Visual Studio設計器將每個屬性都設置爲默認值。 Size的默認值最終爲boils down to the default value of Control.Size,未指定。因此,由設計者生成的總是10總是。以TabStop爲例,其中指定了默認值:僅在設計器中將其設置爲false將生成代碼。

它對您的TableLayoutPanel的視覺最終結果有任何影響嗎?號碼

相關問題