次の方法で共有


方法: MDI 親ウィンドウに MenuStrip を追加する (Windows フォーム)

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

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

Multiple-Document インターフェイス (MDI) アプリケーション」も参照してください。

MDI 親にメニュー項目を追加するには

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

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

  3. Visible Form1MenuStrip プロパティを false に設定します。

  4. 最上位のメニュー項目を Form1MenuStrip に追加し、その Text プロパティを &Fileに設定します。

  5. サブメニュー項目を &File メニュー項目に追加し、その Text プロパティを &Open に設定します。

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

  7. 最上位のメニュー項目を Form2MenuStrip に追加し、その Text プロパティを &Specialに設定します。

  8. &Special メニュー項目に 2 つのサブメニュー項目を追加し、それぞれのTextプロパティを Command&1Command&2 に設定します。

  9. MergeAction&Special、およびCommand&1メニュー項目のCommand&2プロパティをAppendに設定します。

  10. Click &OpenToolStripMenuItem イベントのイベント ハンドラーを作成します。

  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);
    

コードのコンパイル

この例では、次のものが必要です。

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

  • MenuStrip コントロールは Form1 にあり、名前は menuStrip1です。MenuStrip コントロールは Form2 にあり、名前は menuStrip2です。

  • System アセンブリと System.Windows.Forms アセンブリへの参照。