2012-02-17 4 views
7

私はリサイズは、他の人が見えない時に縦に押し上げるコントロールを調整

それが配置ラベルやflowlayoutpanelの束を持って、C#のWinFormsのフォームを作成しました。

私はラベルとflowlayoutpanelの1つをvisible = falseに設定することがあります。

その結果、私はそれらの下にあるすべてのラベルを押し上げる必要があります。現時点では、それらの間にギャップがあります。

また、flowlayoutpanelは、アイテムの数に応じて拡大縮小したいと思います。 これはちょうど私がそれをデザイナーに設定したサイズです。

この2つの問題についてお手伝いできますか。私が正しくあなたを得た場合

おかげ

+0

いくつかのパネルを使用してフォームを分割し、必要に応じて各パネルを非表示にして、dock.fillプロパティを使用することができます。パネルを非表示にすると、残りの2つが空のスペースを埋めるようになります。 – vulkanino

答えて

8

は、私は2つの行でTableLayoutPaneを使用してお勧めします。一番上の行には、ドッキングされたパネルが含まれ、すべてのコントロールが非表示になっています。一番下の行にはドッキングされたパネルが残りすべてが残ります。

上部行のSizeTypeをAutoSizeに設定し、下部行を100%に設定します。

コントロールを非表示にする場合は、トップパネルのVisibleプロパティをfalseに設定します。現在、一番上の行は自動サイズになっているため、何も縮小しないため、一番下の行が「上に」ジャンプします。

+0

私はそれを得ませんでした:どのように行のプロパティを設定できますか?これは、プロパティウィンドウでも、«tableLayoutPanel»オブジェクトのポップアップでもないようです。 –

+0

TableLayoutPanelにこの 'AutoSizeMode =" GrowAndShrink "を設定するまで、あなたが提案したものを試しましたが、それはうまくいかなかったので、 –

1

TableLayoutPanelがプッシュします。次回に良い答えがない場合は、それを使うことができます。

0

最初の問題: 単純なパネルを使用してフォームを分割し、dock.fillプロパティを指定することができます。プログラムでパネルを非表示にすると、他のパネルが空のスペースを残します。

第2の問題: Autosizeプロパティをtrueに設定する必要があります。