MenuStripのサブメニューのアイテムを取得する

MenuStripのサブメニューのアイテムの参照を取得(日本語が変?)する方法。


「MenuStripのサブメニューのアイテム」とは
ccli_sub_menu_item.png
でいう、②の部分。

まず、MenuStripの子アイテム、ここでは②を取得したいので①を取得する

System::Windows::Forms::ToolStripMenuItem^ frmToolStripMenuItem;
frmToolStripMenuItem = (System::Windows::Forms::ToolStripMenuItem)frmMenuStrip->Items[ 0 ];

ここで重要なのは、System::Windows::Forms::ToolStripMenuItemでキャストすること、
Items[]の戻り値は、ToolStripItemなので、メニュークラスのToolStripMenuItemへダウンキャスト(※1)する必要がある。

ToolStripMenuItemが取得できれば後は簡単で、
DropDownItems[ 1 ]で目的のメニューアイテムの参照が取得できる。

例えば、メニューを無効化したければ、

frmToolStripMenuItem[ 1 ]->Enabled = false;

で終了。

※ToolStripMenuItemは、ToolStripItemを継承するクラス。

コメントを残す

メールアドレスが公開されることはありません。