2012-02-24 10 views
5

コンテキストメニューを使用している場合、別のメニューに参加できますか?だから、あなたが得る:コンテキストメニューに参加する

Menu 1 Item 1 
    Menu 1 Item 2 
    Menu 1 Item N 
    --------- 
    Menu 2 Item 1 
    Menu 2 Item 2 
    Menu 2 Item N 

はのは、メモ帳のようなプログラムの例を見てみましょう。メニューには、編集メニューと編集コントロールのコンテキストメニュー(切り取り、コピー、貼り付け、すべて選択...)の両方に表示される標準的なツールセットがあります。

ClipboardToolsというメニューがあります。これは、アイテムを複数回作成する必要なく、編集メニューとコントロールのコンテキストメニューに表示されます。もちろん、この場合は繰り返しはそれほど悪くはありませんが、私は3〜4種類のメニューに表示されるより大きなメニューに対応しなければならず、理想的にはサブメニューとして扱わなくてはなりません。

答えて

5

はい。各menuItemは別々のコントロールなので、両方のメニューに同じmenuItemを追加することができます。

var joinedMenuItem = new System.Windows.Forms.ToolStripMenuItem(); 
    menu1.Items.Add(joinedMenuItem); 
    menu2.Items.Add(joinedMenuItem); 

1つのメニューから別のメニューにアイテムを追加するのと同じ方法です。

それを言うための時間です
menu1.Items.AddRange(menu2.Items); 


ToolStripMenuサブ項目には、アイテム財産です。
ToolStripMenuItemサブアイテムはDropDownItemsプロパティにあります。 1は、このようなフレキシブルなメニューシステムをしたい場合は、現実の生活で

foreach (var item in topMenuItem2.DropDownItems) 
    { 
     topMenuItem1.DropDownItems.Remove(item); 
    } 

、最も可能性の高い1:だからあなたは(ファイルや編集などの)2つのトップメニュー項目を持っていて、共有サブ項目を削除したい場合は

メニュー項目の全リストを作成します。メニューアイテムのサブセットをカテゴリ別に表示します。次に、そのようなリストからメニュー項目を表示されたメニューに追加する。

例として、ユーザーがメニューをカスタマイズしたり、独自のカスタムメニューセクションを作成したりすることができます。それはVisual Studioで行われます。

+0

これはアイテムを個別に追加するためのものですが、それらをすべて簡単に追加する方法はありますか? – Matt

+0

答えを更新しました。それはあなたの質問に答えますか?私はもっ​​と多くの例を提供することができました – MajesticRa

+0

ありがとうございました。これはたくさん説明します。 – Matt

関連する問題