一部のアプリケーションでは、マルチドキュメント インターフェイス (MDI) 子ウィンドウの種類が MDI 親ウィンドウとは異なる場合があります。 たとえば、MDI 親がスプレッドシートで、MDI 子がグラフである場合があります。 その場合、MDI 子メニューの内容を MDI 子メニューの内容に更新して、さまざまな種類の MDI 子ウィンドウがアクティブ化されるようにする必要があります。
次の手順では、 IsMdiContainer、 AllowMerge、 MergeAction、および MergeIndex プロパティを使用して、MDI 子メニューを MDI 親メニューに追加します。 MDI 子ウィンドウを閉じると、追加されたメニューが MDI 親から削除されます。
「 Multiple-Document インターフェイス (MDI) アプリケーション」も参照してください。
MDI 親にメニュー項目を追加するには
フォームを作成し、その IsMdiContainer プロパティを
true
に設定します。MenuStrip に
Form1
を追加し、AllowMerge の MenuStrip プロパティをtrue
に設定します。サブメニュー項目を
&File
メニュー項目に追加し、その Text プロパティを&Open
に設定します。プロジェクトにフォームを追加し、フォームに MenuStrip を追加し、AllowMerge
Form2
の MenuStrip プロパティをtrue
に設定します。最上位のメニュー項目を
Form2
MenuStrip に追加し、その Text プロパティを&Special
に設定します。&Special
メニュー項目に 2 つのサブメニュー項目を追加し、それぞれのTextプロパティをCommand&1
とCommand&2
に設定します。MergeAction、
&Special
、およびCommand&1
メニュー項目のCommand&2
プロパティをAppendに設定します。Click
&Open
の ToolStripMenuItem イベントのイベント ハンドラーを作成します。イベント ハンドラー内で、次のコード例のようなコードを挿入して、
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);
コードのコンパイル
この例では、次のものが必要です。
Form と
Form1
という名前の 2 つのForm2
コントロール。MenuStrip コントロールは
Form1
にあり、名前はmenuStrip1
です。MenuStrip コントロールはForm2
にあり、名前はmenuStrip2
です。System アセンブリと System.Windows.Forms アセンブリへの参照。
.NET Desktop feedback