方法 : ToolStripMenuItem を MDI ドロップダウン メニューから削除する (Windows フォーム)

更新 : 2007 年 11 月

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

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

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

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

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

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

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

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

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

  8. &Import from サブメニュー項目を Form2 の &File メニューに追加し、&Word サブメニュー項目を &File メニューに追加します。

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

    Form2 メニュー項目

    MergeAction 値

    MergeIndex 値

    File

    MatchOnly

    -1

    Import from

    MatchOnly

    -1

    Word

    Remove

    -1

  10. Form1 では、&OpenToolStripMenuItemClick イベントのイベント ハンドラを作成します。

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

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

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

参照

処理手順

方法 : MDI 親フォームを作成する

方法 : MDI 子フォームを作成する

参照

MenuStrip コントロールの概要 (Windows フォーム)