一部のアプリケーションでは、マルチドキュメント インターフェイス (MDI) 子ウィンドウの種類が MDI 親ウィンドウとは異なる場合があります。 たとえば、MDI 親がスプレッドシートで、MDI 子がグラフである場合があります。 その場合、MDI 子メニューの内容を MDI 子メニューの内容に更新して、さまざまな種類の MDI 子ウィンドウがアクティブ化されるようにする必要があります。
次の手順では、IsMdiContainer、AllowMerge、MergeAction、および MergeIndex プロパティを使用して、MDI 子メニューのメニュー項目のグループを MDI 親メニューのドロップダウン部分に挿入します。 MDI 子ウィンドウを閉じると、挿入されたメニュー項目が MDI 親から削除されます。
MDI ドロップダウン メニューに MenuStrip を挿入するには
フォームを作成し、その IsMdiContainer プロパティを
true
に設定します。Form1
に MenuStrip を追加し、MenuStrip の AllowMerge プロパティをtrue
に設定します。&File
メニュー項目に 3 つのサブメニュー項目を追加し、その Text プロパティを&Open
、&Import from
、およびE&xit
に設定します。2 つのサブメニュー項目を
&Import from
サブメニュー項目に追加し、その Text プロパティを&Word
および&Excel
に設定します。プロジェクトにフォームを追加し、フォームに MenuStrip を追加し、
Form2
MenuStrip の AllowMerge プロパティをtrue
に設定します。サブメニュー項目を次の順序で
Form2
の&File
メニューに追加します。ToolStripSeparator、&Save
、Save and &Close
、およびその他の ToolStripSeparator。次の表に示すように、
Form2
メニュー項目の MergeAction プロパティと MergeIndex プロパティを設定します。Form2 メニュー項目 MergeAction の値 MergeIndex の値 ファイル MatchOnly -1 分離器 挿入 2 セーブ 挿入 3 保存して閉じる 挿入 4 分離器 挿入 5 &Open
ToolStripMenuItemの Click イベントのイベント ハンドラーを作成します。イベント ハンドラー内で、次のコード例のようなコードを挿入して、
Form2
の新しいインスタンスを作成し、Form1
の MDI 子として表示します。Private Sub openToolStripMenuItem_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles openToolStripMenuItem.Click Dim NewMDIChild As New Form2() 'Set the parent form of the child window. NewMDIChild.MdiParent = Me 'Display the new form. NewMDIChild.Show() End Sub
private void openToolStripMenuItem_Click(object sender, EventArgs e) { Form2 newMDIChild = new Form2(); // Set the parent form of the child window. newMDIChild.MdiParent = this; // Display the new form. newMDIChild.Show(); }
次のコード例のようなコードを
&Open
ToolStripMenuItem に配置して、イベント ハンドラーを登録します。Private Sub openToolStripMenuItem_Click(sender As Object, e As _ EventArgs) Handles openToolStripMenuItem.Click
this.openToolStripMenuItem.Click += new System.EventHandler(this.openToolStripMenuItem_Click);
コードのコンパイル
この例では、次のものが必要です。
Form1
とForm2
という名前の 2 つの Form コントロール。Form1
にあるmenuStrip1
という名前の MenuStrip コントロールと、Form2
にあるmenuStrip2
という名前の MenuStrip コントロール。System アセンブリと System.Windows.Forms アセンブリへの参照。
関連項目
- 方法: MDI 親フォーム を作成する
- 方法: MDI 子フォーム を作成する
- MenuStrip コントロールの概要
.NET Desktop feedback