Menus and Toolbars for WinForms
複数のサブメニューの追加
タスク別ヘルプ > C1MainMenu のタスク > 複数のサブメニューの追加

サブメニューをデザイナまたはコードで追加することができます。下記のリンクをクリックしてそれぞれの手順を参照できます。

設計時に複数のサブメニューを追加する

設計時にサブメニューとサブメニュー内に別のメニューを追加するには、次の手順に従います。

  1. ドラッグ&ドロップ操作で C1MainMenu コントロールをフォームに配置します。
  2. C1MainMenu を右クリックし、コンテキストメニューから[編集]を選択します。
    コマンドの編集]ダイアログボックスが表示されます。
  3. コマンドテキスト]ボックスに「メニュー1」と入力し、《OK》をクリックします。メニューが次のように表示されます。
  4. 新規コマンド]をクリックし、コンテキストメニューから[編集]を選択します。[コマンドテキスト]ボックスに「メニュー項目1」と入力し、《OK》を選択します。
  5. フォームで[メニュー1]をクリックします。
  6. フォームで[メニュー項目1]をクリックし、コンテキストメニューから[項目の追加]を選択します。
    コマンドの編集]ダイアログボックスが表示されます。
  7. コマンドテキスト]ボックスに「メニュー項目2」と入力し、《OK》を選択します。メニューが次のように表示されます。
  8. フォームで[メニュー項目2]をクリックし、コンテキストメニューから[編集]を選択します。[コマンドの編集]ダイアログボックスが表示されます。
  9. コマンドタイプ]ボックスで[C1CommandMenu]を選択し、《OK》を選択します。
    コマンドタイプ]ボックスで[C1CommandMenu]を選択し、《OK》を選択します。
  10. 新規コマンド]メニュー項目を選択し、コンテキストメニューから[編集]を選択します。
  11. コマンドテキスト]ボックスに「サブメニュー1」と入力し、《OK》をクリックします。メニューは、次の画像のように表示されます。

プログラムによる複数のサブメニューを追加する

プログラムでサブメニューとサブメニュー内に別のメニューを追加するには、次の手順に従います。

  1. C1.Win.C1Command 名前空間をプロジェクトの参照に追加した後で、ソースファイルで名前空間を宣言します。

    Visual Basic コードの書き方

    Visual Basic
    コードのコピー
    Imports C1.Win.C1Command
    

    C# コードの書き方

    C#
    コードのコピー
    using C1.Win.C1Command;
    
  2. フォームをダブルクリックして Form_Load イベントのハンドラーを作成します。そして、イベントハンドラーに以下の手順にあるサンプルコードを追加します。
  3. メニューを保持するC1CommandHolder を追加し、新しい C1MainMenu オブジェクトを作成します。

    Visual Basic コードの書き方

    Visual Basic
    コードのコピー
    Dim ch As C1CommandHolder = C1CommandHolder.CreateCommandHolder(Me)
    Dim mm As New C1MainMenu
    

    C# コードの書き方

    C#
    コードのコピー
    C1CommandHolder ch = C1CommandHolder.CreateCommandHolder(this)
    C1MainMenu mm = new C1MainMenu();1MainMenu;
    
  4. フォームにメインメニューコントロールを追加し、コマンドを保持するメインメニューを作成します。

    Visual Basic コードの書き方

    Visual Basic
    コードのコピー
    Me.Controls.Add(mm)
    Dim mmenu As C1CommandMenu = CType(ch.CreateCommand(GetType(C1CommandMenu)), C1CommandMenu)
    

    C# コードの書き方

    C#
    コードのコピー
    this.Controls.Add(mm)
    C1CommandMenu mmenu = ch.CreateCommand(typeof(C1CommandMenu)) as C1CommandMenu;
    
  5. 新しいメニューのテキストプロパティを設定し、新しいメインメニューにコマンドリンクを追加します。

    Visual Basic コードの書き方

    Visual Basic
    コードのコピー
    mmenu.Text = "メニュー1(&M)"
    mm.CommandLinks.Add(New C1CommandLink(mmenu)
    

    C# コードの書き方

    C#
    コードのコピー
    mmenu.Text = "メニュー1(&M)";
    mm.CommandLinks.Add(new C1CommandLink(mmenu));
    
  6. メニュー(メニュー1)の下にメニュー項目を作成して設定した後で、メニューにコマンドを入れます。

    Visual Basic コードの書き方

    Visual Basic
    コードのコピー
    Dim menuitem1 As C1Command = ch.CreateCommand()
    

    C# コードの書き方

    C#
    コードのコピー
    C1Command menuitem1 = ch.CreateCommand()
    
  7. 新しいメニュー項目にテキストを追加し、menuitem1 に新しい C1CommandLink を追加します。

    Visual Basic コードの書き方

    Visual Basic
    コードのコピー
    menuitem1.Text = "メニュー項目1"
    'menumitem1 に新しい c1commandlink を追加します。
    mmenu.CommandLinks.Add(New C1CommandLink(menuitem1))
    

    C# コードの書き方

    C#
    コードのコピー
    menuitem1.Text = "メニュー項目1"
    //menumitem1 に新しい c1commandlink を追加します。
    mmenu.CommandLinks.Add(new C1CommandLink(menuitem1))
    
  8. メニュー(メニュー1)の下の2番目のメニュー項目に新しいコマンドメニューを作成し、新しい menuitem2 メニューのコマンドリンクを追加します。menuitem2 は、サブメニューを保持するメニューになります。

    Visual Basic コードの書き方

    Visual Basic
    コードのコピー
    Dim menuitem2 As C1CommandMenu = New C1CommandMenu()
    menuitem2.Text = "メニュー項目2"
    mmenu.CommandLinks.Add(New C1CommandLink(menuitem2))
    

    C# コードの書き方

    C#
    コードのコピー
    C1CommandMenu menuitem2 = new C1CommandMenu();
    menuitem2.Text = "メニュー項目2";
    mmmenu.CommandLinks.Add(new C1CommandLink(menuitem2))
    
  9. 新しい menuitem2 メニューにサブメニューを作成し、名前を「サブメニュー1」にした後で、submenu1 のコマンドリンクを追加します。 

    Visual Basic コードの書き方

    Visual Basic
    コードのコピー
    Dim submenu1 As C1Command = ch.CreateCommand()
    submenu1.Text = "Submenu 1"
    menuitem2.CommandLinks.Add(New C1CommandLink(submenu1))
    

    C# コードの書き方

    C#
    コードのコピー
    C1Command submenu1 = ch.CreateCommand()
    submenu1.Text = "Submenu 1"
    menuitem2.CommandLinks.Add(new C1CommandLink(submenu1));
    
  10. アプリケーションを保存し、実行します。実行時にメニューは次のように表示されます。
関連トピック