方法 : MDI ドロップダウン メニューに MenuStrip を挿入する (Windows フォーム)

アプリケーションの中には、マルチ ドキュメント インターフェイス (MDI) 子ウィンドウの種類が MDI 親ウィンドウと異なるものがあります。 たとえば、MDI 親がスプレッドシートで、MDI 子がグラフの場合があります。 そのような場合は、異なる種類の MDI 子ウィンドウがアクティブになったときに、MDI 子メニューの内容で MDI 親メニューの内容を更新する必要があります。

次の手順では、IsMdiContainerAllowMergeMergeAction、および MergeIndex プロパティを使用して、MDI 子メニューのメニュー項目のグループを、MDI 親メニューのドロップダウン部分に挿入します。 MDI 子ウィンドウを閉じると、挿入したメニュー項目が MDI 親から削除されます。

MDI ドロップダウン メニューに MenuStrip を挿入するには

  1. フォームを作成し、その IsMdiContainer プロパティを true に設定します。

  2. MenuStripForm1 に追加し、MenuStripAllowMerge プロパティを true に設定します。

  3. トップレベル メニュー項目を Form1MenuStrip に追加し、その Text プロパティを「&File」に設定しますす。

  4. 3 つのサブメニュー項目を &File メニュー項目に追加し、それらの Text プロパティをそれぞれ &Open&Import fromE&xit に設定します。

  5. 2 つのサブメニュー項目を &Import from サブメニュー項目に追加し、それらの Text プロパティを &Word&Excel に設定します。

  6. プロジェクトにフォームを追加し、フォームに MenuStrip を追加し、Form2MenuStripAllowMerge のプロパティを true に設定します。

  7. トップレベル メニュー項目を Form2MenuStrip に追加し、その Text プロパティを「&File」に設定しますす。

  8. &FileForm2 メニューに、次の順番でサブメニュー項目を追加します: ToolStripSeparator&SaveSave and &Close、もう 1 つの ToolStripSeparator

  9. Form2 メニュー項目の MergeAction プロパティと MergeIndex プロパティを、次の表に示すように設定します。

    Form2 のメニュー項目 MergeAction の値 MergeIndex の値
    ファイル MatchOnly -1
    区切り記号 挿入 2
    保存 挿入 3
    保存して閉じる 挿入 4
    区切り記号 挿入 5
  10. ToolStripMenuItem&OpenClick イベントにイベント ハンドラーを作成します。

  11. このイベント ハンドラー内に次のコード例のようなコードを挿入し、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();  
    }  
    
  12. &OpenToolStripMenuItem に次のコード例のようなコードを配置し、イベント ハンドラーを登録します。

    Private Sub openToolStripMenuItem_Click(sender As Object, e As _  
    EventArgs) Handles openToolStripMenuItem.Click  
    
    this.openToolStripMenuItem.Click += new System.EventHandler(this.openToolStripMenuItem_Click);  
    

コードのコンパイル

この例で必要な要素は次のとおりです。

  • Form1Form2 という名前の 2 つの Form コントロール。

  • Form1 上の menuStrip1 という名前の MenuStrip コントロールと、Form2 上の menuStrip2 という名前の MenuStrip コントロール。

  • System アセンブリおよび System.Windows.Forms アセンブリへの参照。

関連項目