2009-05-27 11 views
1

私はC#を初めて使用しています。私はVisual Studio 2008で気分を取り入れるために小さなプロジェクトに取り組んでいます。私はC#でGUIを設計しています。 3つのGroupBoxを持つTabControlこれらの3つのグループボックスは、画面の左右に固定され、水平方向にサイズ変更すると完全に機能します。C#コンテナ - サイズ変更時に垂直方向に空白を埋め込む

私は、これらの3つのボックスが画面の高さの33%を占めるようにし、正常にサイズを変更します。私はアンカーリングでうんざりしていましたが、答えを見つけることができません。私も同様のものを探していましたが、残念なことに、ポジショニングコンテナを検索すると、すべてのCSSとHTMLが生成されます。

これはかなり一般的なようですが、私はそれをやりやすい方法を見つけることができないようです。誰かが私を正しい方向に向けることができれば、私は大いに感謝しています。

ありがとうございます!

答えて

1

TableLayoutPanelを試してみてください。私はそれがあなたが望むものを正確に行うと信じています。その領域内の列と行を定義し、幅(列)と高さ(行)をパーセントまたはピクセルで指定することができます。グループボックスを各セルにドロップし、DockプロパティをFillに設定すると、TableLayoutPanelのサイズが変更されたとき(ドッキングやアンカーを使用して簡単に達成できる)、セルとともにセルのサイズがうまく調整されます。

+0

ありがとう、それは私が探していたものです。今はかなり分かりやすいようですが、コンテナを見たときにそれを見逃しました! – Foo

0

フォームのResizeイベントを処理する:そこにコントロールの新しいサイズ/位置を計算するコードを追加します。コントロールのアンカープロパティとの干渉に注意してください。 Anchor to Noneを使用し、左右の位置を計算する必要があります。

あなたが学んでいるので、あなたは完全な解決策を受け取るのではなく、むしろ方向性を得ることを望んでいると思います。私からのコードはありません;-)

1

これは実際には暗闇でのショットですが、スプリットパネルを使用してみることもできますか?

編集:私はVisual Studioをチェックインしました。私は、TableLayoutPanelがあなたが望むことをするかもしれないと思います。

EDIT2:ダン、パンチに殴ら:)

+0

私は分割されたパネルを最初に使っていましたが、IsSplitterFixedプロパティを使っていましたが、分割されたパネルが2つのパネルしか扱わないことに気付いたとき、私の心はTableLayoutPanelに移動しました。それらを入れ子にするという考えが好きではありませんでした。 –

関連する問題