メインメニュー、コンテキストメニューの共通化 – プログラミング – Home

メインメニュー、コンテキストメニューの...
 
通知
すべてクリア

メインメニュー、コンテキストメニューの共通化


taro
 taro
(@taro)
ゲスト
結合: 23年前
投稿: 21
 

はじめまして。私は今、C#のサンプルプログラムをいろいろ試しています。
フォームにメニューを表示する際、
System.Windows.Formsの
MenuメンバにMainMenuクラスを設定すればメインメニュー、
ContextMenuメンバにContextMenuクラスを設定すれば右クリックメニューになりまし
た。
あまり無いケースですが、メインメニューとコンテキストメニューを共通化するには
どのように行えばよいのでしょうか?
現状はフォームのコンストラクタで以下のように行っています。

MenuItem M1 = new MenuItem();
M1.Text = サブメニューあり;
MenuItem M2 = new MenuItem();
M2.Text = 終了;
M2.Click += new EventHandler(this.menuExit_Click);

MenuItem MS1 = new MenuItem();
MS1.Text = サブメニュー1;

MenuItem MS2 = new MenuItem();
MS2.Text = サブメニュー2;

M1.MenuItems.Add(MS1);
M1.MenuItems.Add(MS2);

MainMenu MMenu = new MainMenu();
MMenu.MenuItems.Add(M1);
MMenu.MenuItems.Add(M2);

this.Menu = MMenu;

ContextMenu CM = new ContextMenu();
// CM.MenuItems = MMenu.MenuItems.CloneMenu();//コンパイルエラー

for(int i = 0;i < MMenu.MenuItems.Count;i++)
{

CM.MenuItems.Add(MMenu.MenuItems[i].CloneMenu());
}

せっかく同じMenu.MenuItemCollectionクラスなので、上記コードのコメント部分のよう
に、シンプルにコピーできないかと思っているのですが、何かもっと良い方法はないの
でしょうか?
ご教授よろしくお願いします。

環境
OS WindowsXP
ソフト SharpDevelop(C#)
FrameWork 1.1


引用解決済
トピックタグ

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました