次の方法で共有


チュートリアル: メニュー結合コントロールと ToolStrip コントロールを使用した MDI フォームの作成

System.Windows.Forms 名前空間は複数のドキュメント インターフェイス (MDI) アプリケーションをサポートし、MenuStrip コントロールはメニューのマージをサポートします。 MDI フォームは、ToolStrip コントロールもサポートします。

このチュートリアルでは、MDI フォームで ToolStripPanel コントロールを使用する方法について説明します。 このフォームでは、メニューと子メニューのマージもサポートされています。 このチュートリアルでは、次のタスクを示します。

  • Windows フォーム プロジェクトの作成。

  • フォームのメイン メニューを作成します。 メニューの実際の名前は異なります。

  • ToolStripPanel コントロールを追加します。

  • 子フォームを作成する。

  • ToolStripPanel コントロールを z オーダーで配置する。

完了すると、メニューのマージと移動可能な ToolStrip コントロールをサポートする MDI フォームが作成されます。

このトピックのコードを 1 つのリストとしてコピーするには、「方法: メニューの結合と ToolStrip コントロールを使用して MDI フォームを作成する」を参照してください。

[前提条件]

このチュートリアルを完了するには、Visual Studio が必要です。

プロジェクトを作成する

  1. Visual Studio で、MdiForm (File>New>Project>Visual C# または Visual Basic>Classic Desktop>Windows フォーム アプリケーション) という名前の Windows アプリケーション プロジェクトを作成します。

  2. Windows フォーム デザイナーで、フォームを選択します。

  3. [プロパティ] ウィンドウで、IsMdiContainer の値を trueに設定します。

メイン メニューを作成する

親 MDI フォームには、メイン メニューが含まれています。 メイン メニューには、ウィンドウという名前のメニュー項目が 1 つあります。 ウィンドウ メニュー項目を使用すると、子フォームを作成できます。 子フォームのメニュー項目がメイン メニューにマージされます。

  1. ツールボックスから、MenuStrip コントロールをフォームにドラッグします。

  2. コントロールに を追加し、ウィンドウに という名前を付けます。

  3. MenuStrip コントロールを選択します。

  4. [プロパティ] ウィンドウで、MdiWindowListItem プロパティの値を ToolStripMenuItem1に設定します。

  5. [ウィンドウ] メニュー項目にサブ項目を追加し、[新しい] サブ項目に名前を付けます。

  6. [プロパティ] ウィンドウで、[イベント] をクリックします。

  7. Click イベントをダブルクリックします。

    Windows フォーム デザイナーは、Click イベントのイベント ハンドラーを生成します。

  8. イベント ハンドラーに次のコードを挿入します。

    // This method creates a new ChildForm instance
    // and attaches it to the MDI parent form.
    private void newToolStripMenuItem_Click(object sender, EventArgs e)
    {
        ChildForm f = new ChildForm();
        f.MdiParent = this;
        f.Text = "Form - " + this.MdiChildren.Length.ToString();
        f.Show();
    }
    
    ' This method creates a new ChildForm instance 
    ' and attaches it to the MDI parent form.
     Private Sub newToolStripMenuItem_Click( _
     ByVal sender As Object, _
     ByVal e As EventArgs) _
     Handles newToolStripMenuItem.Click
    
         Dim f As New ChildForm()
         f.MdiParent = Me
         f.Text = "Form - " + Me.MdiChildren.Length.ToString()
         f.Show()
    
     End Sub
    

ToolStripPanel コントロールをツールボックスに追加する

MDI フォームで MenuStrip コントロールを使用する場合は、ToolStripPanel コントロールが必要です。 Windows フォーム デザイナーで MDI フォームをビルドするには、ToolStripPanel コントロールを ツールボックス に追加する必要があります。

  1. ツールボックスを開き、[すべての Windows フォーム ] タブをクリックして、使用可能な Windows フォーム コントロールを表示します。

  2. 右クリックしてショートカット メニューを開き、[項目の選択]を選択します。

  3. [ツールボックス アイテムの選択] ダイアログ ボックスで、ToolStripPanel が表示されるまで [名前] 列を下にスクロールします。

  4. ToolStripPanel のチェック ボックスをオンにし、[OK] をクリックします。

    ToolStripPanel コントロールが表示されます。

子フォームを作成する

この手順では、独自の MenuStrip コントロールを持つ個別の子フォーム クラスを定義します。 このフォームのメニュー項目は、親フォームのメニュー項目とマージされます。

  1. ChildForm という名前の新しいフォームをプロジェクトに追加します。

    詳細については、「方法: Windows フォームをプロジェクトに追加する」を参照してください。

  2. ツールボックスから、MenuStrip コントロールを子フォームにドラッグします。

  3. コントロールのデザイナー アクション グリフ (小さい黒い矢印) をクリックし、[アイテムの編集]選択します。

  4. [項目コレクション エディター] ダイアログ ボックスで、ToolStripMenuItem という名前の新しい を子メニューに追加します。

    詳細については、「ToolStrip アイテムコレクションエディター」を参照してください。

フォームをテストする

  1. F5 押して、フォームをコンパイルして実行します。

  2. ウィンドウのメニュー項目 をクリックしてメニューを開き、次に [新規] をクリックします。

    新しい子フォームがフォームの MDI クライアント領域に作成されます。 子フォームのメニューがメイン メニューとマージされます。

  3. 子フォームを閉じます。

    子フォームのメニューがメイン メニューから削除されます。

  4. 新規 を数回クリックします。

    コントロールの MenuStrip プロパティが割り当てられるため、子フォームは MdiWindowListItem メニュー項目の下に自動的に表示されます。

ToolStrip のサポートを追加する

この手順では、MDI 親フォームに 4 つの ToolStrip コントロールを追加します。 各 ToolStrip コントロールは、フォームの端にドッキングされる ToolStripPanel コントロール内に追加されます。

  1. ツールボックスから、ToolStripPanel コントロールをフォームにドラッグします。

  2. ToolStripPanel コントロールを選択した状態で、ToolStrip コントロールをダブルクリックします。

    ToolStrip コントロールに ToolStripPanel コントロールが作成されます。

  3. ToolStripPanel コントロールを選択します。

  4. [プロパティ] ウィンドウで、コントロールの Dock プロパティの値を Leftに変更します。

    ToolStripPanel コントロールは、フォームの左側のメイン メニューの下にドッキングします。 MDI クライアント領域は、ToolStripPanel コントロールに合わせてサイズ変更されます。

  5. 手順 1 から 4 を繰り返します。

    新しい ToolStripPanel コントロールをフォームの上部にドッキングします。

    ToolStripPanel コントロールはメイン メニューの下にドッキングされますが、最初の ToolStripPanel コントロールの右側にドッキングされます。 この手順では、ToolStripPanel コントロールを正しく配置する場合の z オーダーの重要性を示します。

  6. さらに 2 つの ToolStripPanel コントロールについて、手順 1 から 4 を繰り返します。

    新しい ToolStripPanel コントロールをフォームの右側と下部にドッキングします。

ToolStripPanel コントロールを Z オーダーで配置する

MDI フォーム上のドッキングされた ToolStripPanel コントロールの位置は、z オーダーでのコントロールの位置によって決まります。 [ドキュメント アウトライン] ウィンドウでは、コントロールの z オーダーを簡単に配置できます。

  1. [表示] メニューの [その他のウィンドウ] をクリックし、[ドキュメント アウトライン] をクリックします。

    前の手順の ToolStripPanel コントロールの配置は非標準です。 これは、z オーダーが正しくないためです。 コントロールの z オーダーを変更するには、[ドキュメント アウトライン] ウィンドウを使用します。

  2. [ドキュメント アウトライン] ウィンドウで、ToolStripPanel4選択します。

  3. ToolStripPanel4 が一覧の一番下になるまで、下矢印ボタンを繰り返しクリックします。

    ToolStripPanel4 コントロールは、フォームの下部にある他のコントロールの下にドッキングされます。

  4. [ToolStripPanel2] を選択します。

  5. 下矢印ボタンを 1 回クリックして、コントロールをリストの 3 番目の位置に配置します。

    ToolStripPanel2 コントロールは、フォームの上部、メイン メニューの下、およびその他のコントロールの上にドッキングされます。

  6. ドキュメント アウトライン ウィンドウでさまざまなコントロールを選択し、z オーダーで異なる位置に移動します。 ドッキングされたコントロールの配置に対する z オーダーの効果に注意してください。 [編集 ] メニューの [CTRL-Z] または [元に戻す] を使用して、変更を元に戻します。

チェックポイント - フォームをテストする

  1. F5 押して、フォームをコンパイルして実行します。

  2. ToolStrip コントロールのグリップをクリックし、フォーム上の別の位置にコントロールをドラッグします。

    ToolStrip コントロールを 1 つの ToolStripPanel コントロールから別のコントロールにドラッグできます。

次のステップ

このチュートリアルでは、ToolStrip コントロールとメニューのマージを使用して MDI 親フォームを作成しました。 ToolStrip コントロール ファミリは、他の多くの目的で使用できます。

こちらも参照ください