方法 : MenuStrip を MDI 親ウィンドウに追加する (Windows フォーム)
アプリケーションの中には、マルチ ドキュメント インターフェイス (MDI) 子ウィンドウの種類が MDI 親ウィンドウと異なるものがあります。 たとえば、MDI 親がスプレッドシートで、MDI 子がグラフの場合があります。 そのような場合は、異なる種類の MDI 子ウィンドウがアクティブになったときに、MDI 子メニューの内容で MDI 親メニューの内容を更新する必要があります。
次の手順では、IsMdiContainer、AllowMerge、MergeAction、および MergeIndex の各プロパティを使用して MDI 子メニューを MDI 親メニューに追加します MDI 子ウィンドウを閉じると、追加したメニューが MDI 親から削除されます。
「マルチドキュメント インターフェイス (MDI) アプリケーション」も参照してください。
メニュー項目を MDI 親に追加するには
フォームを作成し、その IsMdiContainer プロパティを
true
に設定します。MenuStrip を
Form1
に追加し、AllowMerge の MenuStrip プロパティをtrue
に設定します。トップレベル メニュー項目を
Form1
の MenuStrip に追加し、その Text プロパティを「&File
」に設定しますす。サブメニュー項目を
&File
メニュー項目に追加し、その Text プロパティを「&Open
」に設定します。プロジェクトにフォームを追加し、フォームに MenuStrip を追加し、AllowMerge の
Form2
の MenuStrip のプロパティをtrue
に設定します。トップレベル メニュー項目を
Form2
の MenuStrip に追加し、その Text プロパティを「&Special
」に設定しますす。2 つのサブメニュー項目を
&Special
メニュー項目に追加し、それらの 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