C# 右クリックメニューにチェックを入れたい
VS2008 のC#でのプログラミングです。
右クリックメニューに、
AAA,BBB,CCC,DDD,EEE,ABC,CDE,EFG
という選択肢があり、
AAA,BBB,CCC,DDD,EEE,の中の1つだけが選べ、
AAAを選んだときだけ、
さらに、ABC,CDE,EFGの1つが選択できる状態を作りたいと思っています。
つまり、
AAAを選んだとき、AAAにチェックを入れ、BBB,CCC,DDD,EEEのチェックを外し、
ABC,CDE,EFGを選択可能にする。
BBB,CCC,DDD,EEEを選んだとき、選んだ以外のAAA,・・EEEのチェックを外し、
ABC,CDE,EFGを選択不可のグレーアウト表示にする。
を実現したいです。
contextMenuStripを選択して右クリックメニューを作り、選択肢をつくるところまではできました。
もちろん、各処理先で、
AAAToolStripMenuItem.Checked = true;
BBBToolStripMenuItem.Checked = false;
CCCToolStripMenuItem.Checked = false;
DDDToolStripMenuItem.Checked = false;
EEEToolStripMenuItem.Checked = false;
や
AAAToolStripMenuItem.Checked = false;
BBBToolStripMenuItem.Checked = true;
CCCToolStripMenuItem.Checked = false;
DDDToolStripMenuItem.Checked = false;
EEEToolStripMenuItem.Checked = false;
のように、それぞれ他のチェックを外し、自分をチェックするコードを書けばよいのはわかりますが、
「他のチェックを外す」をforループでまとめて書きたいのですが書き方がわかりません。またグレーアウトする方法も合わせて教えて下さい。
昔、Cで作成したときは、
EnableMenuItem(hMenu, i, MF_ENABLED/MF_GRAYED);
で選択可能・グレーアウト
CheckMenuItem(hMenu, i, MF_CHECKED/MF_UNCHECKED);
でチェックのオンオフができましたが、VS2008のC#でのやり方がわかりません。
よろしくお願いします。
お礼
こんにちは、honiyonです。 ご回答有難う御座います(.. なんと、こんなオブジェクトがあったのですね! 色々いじり倒してみます。 有難う御座いました。