チュートリアル: メニューのマージと ToolStrip コントロールのある MDI フォームを作成する

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

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

  • Windows フォーム プロジェクトを作成する。

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

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

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

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

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

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

前提条件

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

プロジェクトの作成

  1. Visual Studio で、MdiForm という名前の Windows アプリケーション プロジェクトを作成します ( [ファイル]>[新規]>[プロジェクト]>[Visual C#] または [Visual Basic]>[クラシック デスクトップ]>[Windows フォーム アプリケーション] )。

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

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

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

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

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

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

  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 コントロールをツールボックスに追加する

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

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

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

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

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

    ToolStripPanel コントロールがツールボックスに表示されます。

子フォームを作成する

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

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

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

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

  3. MenuStrip コントロールのデザイナー アクション グリフ (Small black arrow) をクリックし、[アイテムの編集] を選択します。

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

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

フォームをテストする

  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 コントロールはメイン メニューの下にドッキングされますが、1 つ目の 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 ファミリは、他のさまざまな用途に使用できます。

関連項目