2016-12-15 10 views
2

は、TabelLayoutPanelとします。 Visual Studioデザイナを使用してForm1に追加し、DockプロパティをFillに設定します。私はDockプロパティを使用してサイズを設定しているにもかかわらず、SizeプロパティもコントロールがC#Winformsの親にドッキングされているときに、デザイナによってコントロールの「サイズ」プロパティが設定されるのはなぜですか?

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

それはなぜForm1.Designer.csに設定されていますか?なぜデザイナーはこのラインを追加していますか? Dockプロパティは十分ではありませんか?それに基づいて、TableLayoutPanelを動的に作成する場合、DockSizeの両方を設定する必要がありますか?

+0

「サイズ」を設定する必要はありません。 'Dock 'を設定すれば十分です。 –

+0

@RezaAghaei - なぜVSが自動的にそれを追加しているのですか? – Sipo

+0

今すぐに来て、カーテンの後ろを見ないようにしてください。それは、老人ではなくて、私たちに会いに来た魔法使いです。 – MickyD

答えて

1

Sizeを設定する必要はありません。設定Dockで十分です。

デザイナは、既定値と異なる値を持つすべてのプロパティをシリアル化します。 Dockプロパティの設定がSizeに変更されているので、デザイナもそれをシリアル化します。

DockNoneに設定すると、シリアル化されたサイズが将来使用されます。また、実行時にドッキングされたコントロールのサイズを設定しても効果はありません。

+0

**注:**コントロールからドックを削除すると、コントロールは常に手動で設定された最後のサイズを使用します。したがって、実行時にドッキングされたコントロールのサイズを設定すると、ドックを削除するとそのサイズが使用されます。それ以外の場合は、シリアル化されたサイズ(最後に手動で設定されたサイズ)が使用されます。 –

1

なぜこのラインを追加するのですか?

これは、コントロールのデザイナーの内部作業の結果です。 Visual Studioデザイナーは、既定値に設定されていないすべてのプロパティを取得します。 Sizeのデフォルト値は最終的にboils down to the default value of Control.Sizeですが、これは指定されていません。したがって、それはデザイナーによって生成された常にです。例としてTabStopを参照してください。デフォルト値が指定されています。デザイナーでfalseに設定するとコードが生成されます。

TableLayoutPanelの視覚的な最終結果に影響しますか?いいえ

関連する問題