- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VC#2010 splitterで分けたpanel)
VC#2010 splitterで分けたpanelの高さが思ったとおりに取得できない
このQ&Aのポイント
- FormにPanelを二つ配置し、Splitterで上下に区切る方法について説明します。
- panel1の高さを取得する際に、panel1とpanel2の高さが正しく反映されない問題が発生しています。
- panel1の高さが想定通りに取得できない理由や解決策について解説します。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
noname#251971
回答No.1
実際にpanel1が(panel2と重なって) 下まで含んだサイズになっているのではないでしょうか。 Dockプロパティによるドッキングは、 フォームへの要素の配置順(Zオーダー)に依存します。 Fillにする要素を先にフォーム上に配置した場合、 まず全体にFillされて、後から配置した部品がそれに重なって配置されます。 ですので、通常はFillする要素は最後に配置します。 先に配置した部品がDockで上下左右などにドッキングされていれば、 後から配置される部品をFillすると、他の部品と重ならずに 残りの領域に対して配置されます。 上記のように、通常はフォームに部品を置いた順で 最初に置いた部品が一番後ろとなる形にZオーダーが設定されていきます。 ですが、後からZオーダーの変更も可能です。 フォームデザイナを表示している画面で、 メニューの[表示]-[その他のウィンドウ]-[ドキュメント アウトライン] を開いてみてください。 そのウィンドウには、要素のZオーダーと親子関係が表されており、 その関係の変更も可能になっています。 ([↑][↓]ボタンでZオーダー変更。下にある項目ほどZオーダーが後ろになる) そこで、panel2がpanel1よりも下になるように並び替えをすれば、 目的の状態になるのではないかとおもわれます。
お礼
お世話になっております。ご回答ありがとうございます! おっしゃるとおりでした。 記事に投稿した手順で操作したつもりが、アウトラインで見てみるとそうなっていませんでした・・。いじくってるうちに変わってしまったのかもしれません。 ドキュメントアウトラインの使い方を知らなかったので、そちらも勉強になりました。重ねて御礼申し上げます。 入れ替えてみたところ、思ったとおりのHeightが得られました。 ありがとうございました!