次の方法で共有


Menu.MergeMenu(Menu) メソッド

定義

1 つのメニューの MenuItem オブジェクトを現在のメニューにマージします。

public:
 virtual void MergeMenu(System::Windows::Forms::Menu ^ menuSrc);
public virtual void MergeMenu (System.Windows.Forms.Menu menuSrc);
abstract member MergeMenu : System.Windows.Forms.Menu -> unit
override this.MergeMenu : System.Windows.Forms.Menu -> unit
Public Overridable Sub MergeMenu (menuSrc As Menu)

パラメーター

menuSrc
Menu

現在のメニューのメニュー項目にメニュー項目がマージされている Menu

例外

メニューをそのメニュー自身にマージしようとしました。

この例では、 mainMenu1mainMenu2の 2 つのメニューを作成します。 1 つ目のメニューには 1 つの MenuItemFile、2 番目のメニューには 1 つの MenuItemEdit含まれています。 メソッドを MergeMenu 使用すると、 mainMenu2 が と mainMenu1マージされます。 が表示されると、 mainMenu1 には 2 つのメニュー項目 FileEditが含まれます。 この例では、 という名前Form1の を作成しているForm必要があります。

private:
   void InitializeMyMainMenu()
   {
      // Create the 2 menus and the menu items to add.
      MainMenu^ mainMenu1 = gcnew MainMenu;
      MainMenu^ mainMenu2 = gcnew MainMenu;
      MenuItem^ menuItem1 = gcnew MenuItem;
      MenuItem^ menuItem2 = gcnew MenuItem;

      // Set the caption for the menu items.
      menuItem1->Text = "File";
      menuItem2->Text = "Edit";

      // Add a menu item to each menu for displaying.
      mainMenu1->MenuItems->Add( menuItem1 );
      mainMenu2->MenuItems->Add( menuItem2 );

      // Merge mainMenu2 with mainMenu1
      mainMenu1->MergeMenu( mainMenu2 );

      // Assign mainMenu1 to the form.
      this->Menu = mainMenu1;
   }
      private void InitializeMyMainMenu()
      {
          // Create the 2 menus and the menu items to add.
          MainMenu mainMenu1 = new MainMenu();
          MainMenu mainMenu2 = new MainMenu();

          MenuItem menuItem1 = new MenuItem();
          MenuItem menuItem2 = new MenuItem();

          // Set the caption for the menu items.
          menuItem1.Text = "File";
          menuItem2.Text = "Edit";

          // Add a menu item to each menu for displaying.
          mainMenu1.MenuItems.Add(menuItem1);
          mainMenu2.MenuItems.Add(menuItem2);

          // Merge mainMenu2 with mainMenu1
          mainMenu1.MergeMenu(mainMenu2);

          // Assign mainMenu1 to the form.
          this.Menu = mainMenu1;
      }
Private Sub InitializeMyMainMenu()
    ' Create the 2 menus and the menu items to add.
    Dim mainMenu1 As New MainMenu()
    Dim mainMenu2 As New MainMenu()

    Dim menuItem1 As New MenuItem()
    Dim menuItem2 As New MenuItem()

    ' Set the caption for the menu items.
    menuItem1.Text = "File"
    menuItem2.Text = "Edit"

    ' Add a menu item to each menu for displaying.
    mainMenu1.MenuItems.Add(menuItem1)
    mainMenu2.MenuItems.Add(menuItem2)

    ' Merge mainMenu2 with mainMenu1
    mainMenu1.MergeMenu(mainMenu2)

    ' Assign mainMenu1 to the form.
    Me.Menu = mainMenu1
End Sub

注釈

このメソッドは、 MenuItem あるメニューのオブジェクトを現在のメニューにマージします。 MenuItemオブジェクトは、 プロパティと MenuItem.MergeOrder プロパティのMenuItem.MergeType値に従ってマージされます。

メニューのマージは、通常、マルチ ドキュメント インターフェイス (MDI) 親フォームのメニューをアクティブな MDI 子フォームのメニューとマージするために行われます。 これは、.NET Framework共通言語ランタイムによって自動的に実行されます。 たとえば、MDI 親フォームにファイルを処理するための一連のメニューが含まれており、MDI 子フォームにもファイル関連のメニュー項目がある場合、MDI 親フォームに子フォームが表示されると、メニュー セットは 1 つのファイル メニュー セットに自動的にマージされます。

MDI アプリケーションの MergeMenu 一部ではない 2 つのメニュー構造をマージする場合は、 メソッドを使用できます。 この実装は、 クラスまたは ContextMenu クラスによってMainMenu呼び出され、 からMenu派生した 2 つ以上のオブジェクトをマージできます。

2 つの MenuItem オブジェクトをマージするには、 メソッドを MenuItem.MergeMenu 使用します。

適用対象

こちらもご覧ください