チュートリアル: メニューのマージと ToolStrip コントロールのある MDI フォームを作成する
System.Windows.Forms 名前空間は、マルチ ドキュメント インターフェイス (MDI) アプリケーションをサポートし、MenuStrip コントロールはメニューの結合をサポートします。 MDI フォームは、ToolStrip コントロールもサポートします。
このチュートリアルでは、MDI フォームで ToolStripPanel コントロールを使用する方法について説明します。 フォームは、子メニューをマージするメニューもサポートしています。 このチュートリアルでは、次のタスクについて説明します。
Windows フォーム プロジェクトを作成する。
フォームのメイン メニューを作成する。 メニューの実際の名前はさまざまに異なります。
ToolStripPanel コントロールをツールボックスに追加する。
子フォームを作成する。
ToolStripPanel コントロールを z オーダーで配置する。
完了すると、メニューのマージと移動可能な ToolStrip コントロールをサポートした MDI フォームが完成します。
このトピックのコードを単一のリストとしてコピーするには、「方法: メニューのマージと ToolStrip コントロールを使用して MDI フォームを作成する」を参照してください。
前提条件
このチュートリアルを完了するには Visual Studio が必要です。
プロジェクトの作成
Visual Studio で、MdiForm という名前の Windows アプリケーション プロジェクトを作成します ( [ファイル]>[新規]>[プロジェクト]>[Visual C#] または [Visual Basic]>[クラシック デスクトップ]>[Windows フォーム アプリケーション] )。
Windows フォーム デザイナーで、フォームを選択します。
[プロパティ] ウィンドウで、IsMdiContainer の値を
true
に設定します。
メイン メニューを作成する
親 MDI フォームには、メイン メニューが含まれています。 メイン メニューには、ウィンドウという名前のメニュー項目が 1 つあります。 この [ウィンドウ] メニュー項目を使用して、子フォームを作成できます。 子フォームのメニュー項目は、メイン メニューにマージされます。
ツールボックスから、MenuStrip コントロールをフォームにドラッグします。
ToolStripMenuItem を MenuStrip コントロールに追加し、名前をウィンドウとします。
MenuStrip コントロールを選択します。
[プロパティ] ウィンドウで、MdiWindowListItem プロパティの値を
ToolStripMenuItem1
に設定します。[ウィンドウ] メニュー項目にサブ項目を追加し、そのサブ項目に新規という名前を指定します。
[プロパティ] ウィンドウで、[イベント] をクリックします。
Click イベントをダブルクリックします。
Windows フォーム デザイナーによって、Click イベントのイベント ハンドラーが生成されます。
イベント ハンドラーに次のコードを挿入します。
// 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 コントロールをツールボックスに追加する必要があります。
ツールボックスを開き、 [すべての Windows フォーム] タブをクリックして、使用可能な Windows フォーム コントロールを表示します。
右クリックしてショートカット メニューを開き、 [アイテムの選択] を選択します。
[ツールボックス アイテムの選択] ダイアログ ボックスで、ToolStripPanel が表示されるまで [名前] 列を下にスクロールします。
ToolStripPanel のチェック ボックスをオンにし、 [OK] をクリックします。
ToolStripPanel コントロールがツールボックスに表示されます。
子フォームを作成する
この手順では、独自の MenuStrip コントロールを持つ別の子フォーム クラスを定義します。 このフォームのメニュー項目は、親フォームのメニュー項目とマージされます。
ChildForm
という名前の新しいフォームをプロジェクトに追加します。詳細については、「方法: プロジェクトに Windows フォームを追加する」を参照してください。
ツールボックスから、MenuStrip コントロールを子フォームにドラッグします。
MenuStrip コントロールのデザイナー アクション グリフ () をクリックし、[アイテムの編集] を選択します。
[項目コレクション エディター] ダイアログ ボックスで、ChildMenuItem という名前の新しい ToolStripMenuItem を子メニューに追加します。
詳細については、「ToolStrip Items コレクション エディター」を参照してください。
フォームをテストする
F5 キーを押してフォームをコンパイルし、実行します。
[ウィンドウ] メニュー項目をクリックしてメニューを開き、 [新規] をクリックします。
フォームの MDI クライアント領域に新しい子フォームが作成されます。 子フォームのメニューはメイン メニューにマージされます。
子フォームを閉じます。
子フォームのメニューがメイン メニューから削除されます。
[新規] を数回クリックします。
MenuStrip コントロールの MdiWindowListItem プロパティが割り当てられているので、子フォームは [ウィンドウ] メニュー項目の下に自動的に表示されます。
ToolStrip サポートを追加する
この手順では、MDI 親フォームに 4 つの ToolStrip コントロールを追加します。 各 ToolStrip コントロールは、フォームの端にドッキングされた ToolStripPanel コントロール内に追加されます。
ツールボックスから、ToolStripPanel コントロールをフォームにドラッグします。
ToolStripPanel コントロールを選択した状態で、ツールボックスの ToolStrip コントロールをダブルクリックします。
ToolStrip コントロールが ToolStripPanel コントロール内に作成されます。
ToolStripPanel コントロールを選択します。
[プロパティ] ウィンドウで、コントロールの Dock プロパティの値を Left に変更します。
ToolStripPanel コントロールが、メイン メニューの下にあるフォームの左側にドッキングされます。 MDI クライアント領域のサイズは、ToolStripPanel コントロールに合わせて変更されます。
手順 1 - 4 を繰り返します。
新しい ToolStripPanel コントロールをフォームの上部にドッキングします。
ToolStripPanel コントロールはメイン メニューの下にドッキングされますが、1 つ目の ToolStripPanel コントロールの右側にドッキングされます。 この手順は、ToolStripPanel コントロールを正しく配置するうえでの z オーダーの重要性について説明したものです。
さらに 2 つの ToolStripPanel コントロールについて、手順 1 - 4 を繰り返します。
新しい ToolStripPanel コントロールを、フォームの右端と下端にドッキングします。
ToolStripPanel コントロールを Z オーダーで配置する
MDI フォーム上でドッキングされた ToolStripPanel コントロールの位置は、コントロールの z オーダーでのコントロールの位置によって決まります。 コントロールの z オーダーは、[ドキュメント アウトライン] ウィンドウで簡単に配置できます。
[表示] メニューの [その他のウィンドウ] をクリックし、 [ドキュメント アウトライン] をクリックします。
前の手順で作成した ToolStripPanel コントロールの配置は非標準です。 これは、z オーダーが正しくないためです。 [ドキュメント アウトライン] ウィンドウを使用すると、コントロールの z オーダーを変更できます。
[ドキュメント アウトライン] ウィンドウで、ToolStripPanel4 を選択します。
ToolStripPanel4 が一覧の一番下に表示されるまで、下向き矢印ボタンを繰り返しクリックします。
ToolStripPanel4 コントロールが、他のコントロールの下にあるフォームの下部にドッキングされます。
ToolStripPanel2 を選択します。
下向き矢印ボタンを 1 回クリックして、コントロールを一覧の 3 番目に配置します。
ToolStripPanel2 コントロールが、メイン メニューの下の、他のコントロールの上にあるフォームの上部にドッキングされます。
[ドキュメント アウトライン] ウィンドウでさまざまなコントロールを選択し、z オーダーの別の位置に移動します。 z オーダーが、ドッキングされたコントロールの配置にどのように影響するかに注意してください。 Ctrl + Z または [編集] メニューの [元に戻す] を使用して、変更を元に戻します。
チェックポイント - フォームをテストする
F5 キーを押してフォームをコンパイルし、実行します。
ToolStrip コントロールのグリップをクリックし、フォーム上の別の位置にコントロールをドラッグします。
ToolStrip コントロールを、1 つの ToolStripPanel コントロールから別のコントロールにドラッグすることもできます。
次のステップ
このチュートリアルでは、ToolStrip コントロールとメニューのマージを使用して、MDI 親フォームを作成しました。 コントロールの ToolStrip ファミリは、他のさまざまな用途に使用できます。
ContextMenuStrip を使用して、コントロールのショートカット メニューを作成します。 詳しくは、「ContextMenu コンポーネントの概要」をご覧ください。
自動的に設定される標準メニューを使用してフォームを作成します。 詳しくは、「チュートリアル: 標準メニュー項目をフォームに用意する」をご覧ください。
ToolStrip コントロールをプロフェッショナルな外観にします。 詳しくは、「方法: アプリケーションの ToolStrip レンダラーを設定する」をご覧ください。
関連項目
.NET Desktop feedback