Panel.Dock の他の設定を無視して Panel.Dock を埋める 質問する

Panel.Dock の他の設定を無視して Panel.Dock を埋める 質問する

フォーム上にパネルを作成し、それを Dock=Top に設定し、別のパネルをドロップしてその Dock=Fill に設定すると、最初のパネルを無視してフォーム全体を埋め尽くす場合があります。タブ順序を変更しても何も起こりません。

ベストアンサー1

ドッキングレイアウトは、注文兄弟コントロールのドッキング。コントロールは「下から上へ」ドッキングされるのでコレクション内の最後のコントロールが最初にドッキングされますドッキングされたコントロールは、以前ドッキングされた兄弟コントロールを考慮に入れます。したがって、他のドッキングされたコントロールを考慮する場合は、Dock=Fill のコントロールが兄弟の順序で最初 (一番上) にある必要があります。最初のコントロールでない場合は、前のコントロールが重なります。

兄弟順序は必ずしも視覚的な順序と同じではなく、兄弟順序はデザイン ビューから必ずしも明らかではないため、混乱を招く可能性があります。

文書の概要ウィンドウ (表示 -> その他のウィンドウ -> ドキュメント アウトライン) では、コントロールの階層と順序を示す便利なツリー ビューが提供され、コントロールの兄弟順序を変更できます。

コンテキスト メニュー -> [最前面に移動] / [最背面に移動] を選択してデザイナーで直接兄弟の順序を変更することもできます。これにより、コントロールが兄弟の最初または最後に移動します。実際の効果はレイアウト モデルによって異なるため、これらのメニュー ラベルは多少わかりにくい場合があります。

固定位置のコントロールでは、2D 位置は兄弟の順序に依存しませんが、コントロールが重なり合っている場合、順序が最も早いコントロールが「最上部」になり、順序が遅い兄弟の一部が隠れます。このコンテキストでは、最前面に移動 / 最背面に移動が適切です。

フロー レイアウト パネルまたはテーブル レイアウト パネル内では、作成順序によってコントロールの視覚的な順序が決まります。コントロールが重複することはありません。したがって、最前面に移動/最背面に移動は、実際にはコントロールの順序を最初または最後に設定することを意味します。

ドッキングレイアウトでは、ドッキングの計算順序を決定するため、最前面へ移動/最背面へ移動はさらに混乱を招く可能性があります。そのため、フィルドッキングされたコントロールで「最前面へ移動」すると、コントロールは真ん中親の、すべてのエッジドッキングされたコントロールを考慮します。

おすすめ記事