私の調査と理解から、ContextMenuStripはContextMenuの後継となるはずであり、コードを最新の状態に保つという精神で、ContextMenuのそのようなインスタンスの1つを置き換えることに着手しました。
以前は、MenuItemにクリックハンドラーを備えたアイテムのサブメニューを提供するために、次のようなことをしていました。
MenuItem[] clearMenu = {
new MenuItem("All", clear_all_click),
new MenuItem("Text", clear_text_click),
new MenuItem("Images", clear_images_click),
new MenuItem("Audio", clear_audio_click)
};
notifyIcon.ContextMenu.MenuItems.Add(new MenuItem("Clear", clearMenu));
単純なものが欠けているかどうかはわかりませんが、ContextMenuStripを使用して同様の機能を実現するにはどうすればよいですか?ToolStripMenuItemには、それ自体の配列を追加してサブメニューを形成できるオーバーロードされたコンストラクターはありません。次のように、ContextMenuStripから特定のアイテムインデックスを選択してアイテムを追加する方法もありません。
notifyIcon.ContextMenuStrip.Items["Clear"].Add
ToolStripItemの配列を含むサブメニューをインスタンス化できるコンストラクターがありますが、これは抽象クラスであるため、直接呼び出すことはできません。
考え?それとも、木々の間から森が見えないのでしょうか。