チュートリアル : メニューのマージと ToolStrip コントロールのある MDI フォームを作成する
System.Windows.Forms 名前空間は、複数のマルチ ドキュメント インターフェイス (MDI) アプリケーションをサポートし、MenuStrip コントロールは、メニューのマージをサポートします。MDI フォームでは、ToolStrip コントロールも使用できます。
このチュートリアルでは、MDI フォームで ToolStripPanel コントロールを使用する方法について説明します。このフォームには、メニューを子メニューとマージする機能もあります。このチュートリアルでは、次のタスクについて説明します。
Windows フォーム プロジェクトの作成
フォームのメイン メニューを作成 (実際のメニュー名は異なります)
ツールボックスへの ToolStripPanel コントロールの追加
子フォームの作成
z オーダーによる ToolStripPanel コントロールの並べ替え
すべてのタスクを完了すると、メニューのマージおよび移動可能な ToolStrip コントロールをサポートする MDI フォームが完成します。
このトピックのコードを単一のリストとしてコピーするには、「方法 : メニューのマージと ToolStrip コントロールを使用して MDI フォームを作成する」を参照してください。
![]() |
---|
使用している設定またはエディションによっては、表示されるダイアログ ボックスやメニュー コマンドがヘルプに記載されている内容と異なる場合があります。設定を変更するには、[ツール] メニューの [設定のインポートとエクスポート] をクリックします。詳細については、「Visual Studio の設定」を参照してください。 |
前提条件
このチュートリアルを実行するための要件は次のとおりです。
- Visual Studio がインストールされているコンピュータで、Windows フォーム アプリケーション プロジェクトを作成および実行するための十分なアクセス許可が付与されていること。
プロジェクトの作成
最初にプロジェクトを作成し、フォームを設定します。
プロジェクトを作成するには
MdiForm という名前の Windows アプリケーション プロジェクトを作成します。
詳細については、「方法 : 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 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
// 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(); }
ツールボックスへの ToolStripPanel コントロールの追加
MDI フォームで MenuStrip コントロールを使用するときは、ToolStripPanel コントロールが必要です。MDI フォームを Windows フォーム デザイナ内でビルドするために、ToolStripPanel コントロールをツールボックスに追加する必要があります。
ToolStripPanel コントロールをツールボックスに追加するには
ツールボックスを開き、[すべての Windows フォーム] タブをクリックすると、使用できる Windows フォーム コントロールが表示されます。
コントロールを右クリックしてショートカット メニューを開き、[アイテムの選択] をクリックします。
[ツールボックス アイテムの選択] ダイアログ ボックスで、[ToolStripPanel] が表示されるまで [名前] 列をスクロールします。
[ToolStripPanel] チェック ボックスをオンにし、[OK] をクリックします。
ToolStripPanel コントロールがツールボックスに表示されます。
子フォームの作成
この手順では、別個の MenuStrip コントロールを持つ独立した子フォーム クラスを定義します。このフォームのメニュー項目は、親フォームのメニュー項目にマージされます。
子フォームを定義するには
ChildForm
という名前の新規フォームをプロジェクトに追加します。詳細については、「方法 : プロジェクトに Windows フォームを追加する」を参照してください。
ツールボックスから、子フォームに MenuStrip コントロールをドラッグします。
MenuStrip コントロールのスマート タグ グリフ (
) をクリックし、[項目の編集] を選択します。
[項目コレクション エディタ] ダイアログ ボックスで、ChildMenuItem という名前の新しい ToolStripMenuItem を子メニューに追加します。
詳細については、「ToolStrip Items コレクション エディタ」を参照してください。
フォームのテスト
フォームをテストするには
F5 キーを押して、フォームをコンパイルおよび実行します。
[ウィンドウ] メニュー項目をクリックしてメニューを開き、[新規作成] をクリックします。
新規の子フォームが、フォームの MDI クライアント領域に作成されます。子フォームのメニューが、メイン メニューにマージされます。
子フォームを閉じます。
子フォームのメニューは、メイン メニューから削除されます。
[新規作成] を数回クリックします。
MenuStrip コントロールの MdiWindowListItem プロパティが割り当てられるため、複数の子フォームが自動的に [ウィンドウ] メニュー項目の下に表示されます。
ToolStrip サポートの追加
この手順では、4 つの ToolStrip コントロールを MDI 親フォームに追加します。各 ToolStrip コントロールは ToolStripPanel コントロール内に追加され、このコントロールがフォームの端にドッキングされます。
ToolStrip コントロールを MDI 親フォームに追加するには
ツールボックスから、フォームに ToolStripPanel コントロールをドラッグします。
ToolStripPanel コントロールを選択した状態で、ツールボックス内の ToolStrip コントロールをダブルクリックします。
ToolStrip コントロールが、ToolStripPanel コントロール内に作成されます。
ToolStripPanel コントロールを選択します。
[プロパティ] ウィンドウで、コントロールの Dock プロパティの値を Left に変更します。
ToolStripPanel コントロールがフォームの左側、メイン メニューの下にドッキングされます。MDI クライアント領域は、ToolStripPanel コントロールが収まるサイズに変更されます。
手順 1. ~ 4. を繰り返します。
新しい ToolStripPanel コントロールは、フォームの上部にドッキングされます。
ToolStripPanel コントロールはメイン メニューの下にドッキングされますが、今回は最初の ToolStripPanel コントロールの右側に配置されます。この手順は、ToolStripPanel コントロールを適切に配置する際の z オーダーの役割をよく示しています。
さらに 2 つの ToolStripPanel コントロールについて、手順 1. ~ 4. を繰り返します。
新規の ToolStripPanel コントロールは、フォームの右側の下部にドッキングされます。
z オーダーによる ToolStripPanel コントロールの並べ替え
MDI フォームにドッキングされる ToolStripPanel コントロールの位置は、z オーダーにおけるそのコントロールの位置によって決定されます。コントロールの z オーダーは、[ドキュメント アウトライン] ウィンドウで簡単に設定できます。
z オーダーに従って ToolStripPanel コントロールを並べ替えるには
[表示] メニューの [その他のウィンドウ] をクリックし、[ドキュメント アウトライン] をクリックします。
前の手順で使用した ToolStripPanel コントロールの順序は、標準の順序ではありません。これは、z オーダーが正しくないためです。[ドキュメント アウトライン] ウィンドウを使って、コントロールの z オーダーを変更します。
[ドキュメント アウトライン] ウィンドウで、[ToolStripPanel4] を選択します。
[ToolStripPanel4] が一覧の最後に移動するまで、下向きの矢印ボタンを繰り返しクリックします。
[ToolStripPanel4] コントロールは、フォームの下部に、他のコントロールの下になる配置でドッキングされます。
[ToolStripPanel2] を選択します。
下向き矢印ボタンを 1 度クリックして、リストで 3 番目のコントロールの位置を指定します。
[ToolStripPanel2] コントロールは、フォームの上部に、メイン メニューの下で他のコントロールの上になる配置でドッキングされます。
さまざまなコントロールを [ドキュメント アウトライン] ウィンドウで選択し、z オーダーの異なる位置に移動します。z オーダーに従って、ドッキングされたコントロールの配置が変わることを確認してください。Ctrl キーを押しながら Z キーを押すか、[編集] メニューの [元に戻す] をクリックすると、変更は元に戻ります。
チェックポイント
フォームをテストするには
F5 キーを押して、フォームをコンパイルおよび実行します。
ToolStrip コントロールのグリップをクリックし、コントロールをフォームの異なる位置へドラッグします。
ToolStrip コントロールをある ToolStripPanel コントロールからドラッグして別のコントロールへ移動できます。
次の手順
このチュートリアルでは、ToolStrip コントロールとメニューのマージ機能を備えた MDI 親フォームを作成しました。ToolStrip 系コントロールの用途は、他にもたくさんあります。
ContextMenuStrip を使って、コントロールにショートカット メニューを作成します。詳細については、「ContextMenu コンポーネントの概要 (Windows フォーム)」を参照してください。
標準メニューに自動的に項目が設定されるフォームを作成します。詳細については、「チュートリアル : 標準メニュー項目をフォームに用意する」を参照してください。
ToolStrip コントロールにプロフェッショナルな外観を与えます。詳細については、「方法 : アプリケーションの ToolStrip レンダラを設定する」を参照してください。
参照
処理手順
方法 : MDI 親フォームを作成する
方法 : MDI 子フォームを作成する
方法 : MDI ドロップダウン メニューに MenuStrip を挿入する (Windows フォーム)
関連項目
MenuStrip
ToolStrip
StatusStrip