方法 : ドッキングの動作を制御する

更新 : 2007 年 11 月

コントロールをフォームに追加する順序によって、ドッキング機能を使用するときに画面上の各コントロールのレイアウトが影響を受ける可能性があります。コントロールを正しい順序で追加しないと、画面上の目的の位置にコントロールが表示されない場合があります。

コントロールをフォームに追加する順序によって z オーダーが変わります。親コントロール内の複数のコントロールをドッキングするときのレイアウト方法は、この z オーダーによって決まります。親コントロールに最初に追加するコントロールが z オーダーの一番下に配置され、それ以降に追加するコントロールは順にその上の層に配置されます。1 つのコントロールと別のコントロールをドッキングして親コントロール内の同じ領域に配置する場合、最終的なレイアウトでは z オーダーで後方にあるコントロールが優先されます。たとえば、2 つのコントロールの Dock プロパティを Top に設定すると、通常、z オーダーで後方にあるコントロールが、画面上の親コントロールで最前面に表示されます。

一方、コントロールの Dock プロパティを Fill に設定すると、1 つのコントロールによって別のコントロールが隠される可能性があります。たとえば、2 つのコントロールを誤った順序でフォームに追加すると両方が画面の最前面に表示されることがあり、その位置に 1 つのコントロールのみを配置するように指定している場合、一方のコントロールによってもう一方が隠されます。

レイアウト上の問題が発生する場合は、影響を受けるコントロールの z オーダーを調整する必要があります。デザイナを使用してコントロールをフォームに追加するかどうかに応じて、この問題の解決に必要な手順が異なります。

ドッキングのレイアウトを制御するには

  • 関連するコントロールをフォームに追加する順序を修正します。

    TreeView コントロールと Button コントロールをプログラムで Panel コントロールに追加する例について説明します。TreeView コントロールの Dock プロパティを Fill に設定し、Button コントロールの Dock プロパティを Top に設定します。TreeView コントロールによって Button コントロールの一部が隠されます。TreeView コントロールと Button コントロールを Panel に追加するコードは次のようになります。

    this.panel1.Controls.Add(this.button1);
    this.panel1.Controls.Add(this.treeView1);
    

    問題を解決するには、これらのコントロールをパネルに追加する順序を変更します。

    this.panel1.Controls.Add(this.treeView1);
    this.panel1.Controls.Add(this.button1);
    

    または、一方のコントロールで BringToFront メソッドまたは SendToBack メソッドを使用します。

デザイナを使用してドッキングのレイアウトを制御するには

  1. フォーム上で正しくない位置に表示されるコントロールの 1 つを選択します。

  2. 目的のレイアウトに応じて、コントロールを右クリックし、[最背面へ移動] をクリックします。

    または

    コントロールを右クリックし、[最前面へ移動] をクリックします。

  3. この他に追加するコントロールがある場合は、ドッキングの動作が修正されるまで、必要に応じてそれらのコントロールに対して手順 2. を繰り返します。

ms404360.alert_note(ja-jp,VS.90).gifメモ :

複数のコントロールを使用する場合は、ドキュメント アウトライン ウィンドウで z オーダーを制御することをお勧めします。

参照

概念

.NET Compact Framework に関する「方法」トピック