方法 : MDI ドロップダウン メニューに MenuStrip を挿入する (Windows フォーム)
更新 : 2007 年 11 月
アプリケーションの中には、マルチ ドキュメント インターフェイス (MDI) 子ウィンドウの種類が MDI 親ウィンドウと異なるものもあります。たとえば、MDI 親がスプレッドシートで、MDI 子がグラフの場合があります。そのような場合は、異なる種類の MDI 子ウィンドウがアクティブになったときに、MDI 子メニューの内容で MDI 親メニューの内容を更新する必要があります。
次のプロシージャでは、IsMdiContainer、AllowMerge、MergeAction、および MergeIndex の各プロパティを使用して、MDI 子メニューのメニュー項目のグループを MDI 親メニューのドロップダウン部分に挿入します。MDI 子ウィンドウを閉じると、挿入したメニュー項目が MDI 親ウィンドウから削除されます。
MenuStrip を MDI ドロップダウン メニューに挿入するには
フォームを作成し、その IsMdiContainer プロパティを true に設定します。
MenuStrip を Form1 に追加し、MenuStrip の AllowMerge プロパティを true に設定します。
トップレベル メニュー項目を Form1MenuStrip に追加し、その Text プロパティを &File に設定します。
3 つのサブメニュー項目を &File メニュー項目に追加し、それらの Text プロパティをそれぞれ &Open、&Import from、および E&xit に設定します。
2 つのサブメニュー項目を &Import from サブメニュー項目に追加し、それらの Text プロパティをそれぞれ &Word と &Excel に設定します。
プロジェクトにフォームを追加し、そのフォームに MenuStrip を追加して、Form2MenuStrip の AllowMerge プロパティを true に設定します。
トップレベル メニュー項目を Form2MenuStrip に追加し、その Text プロパティを &File に設定します。
Form2 の &File メニューにサブメニュー項目を追加します。追加する順番は、ToolStripSeparator、&Save、&Closeand Save、およびもう 1 つの ToolStripSeparator となります。
次の表に示すように、Form2 メニュー項目の MergeAction プロパティと MergeIndex プロパティを設定します。
Form2 のメニュー項目
MergeAction の値
MergeIndex の値
[ファイル]
[MatchOnly]
-1
[Separator]
[挿入]
2
[上書き保存]
[挿入]
3
[保存して閉じる]
[挿入]
4
[Separator]
[挿入]
5
&OpenToolStripMenuItem の Click イベントのイベント ハンドラを作成します。
このイベント ハンドラ内に次のコード例のようなコードを挿入し、Form1 の MDI 子フォームとして Form2 の新しいインスタンスを作成および表示します。
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
[C#]
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(); }
次のようなコードを &OpenToolStripMenuItem に配置し、イベント ハンドラを登録します。
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 アセンブリへの参照。