根据我的研究和理解,ContextMenuStrip 应该是 ContextMenu 的继承者,并且本着保持我的代码更新和健全的精神,我着手替换一个这样的 ContextMenu 实例。
以前,为了给 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(s) 数组的子菜单,但它是一个抽象类,因此您不能直接调用它。
想法?还是我不是透过树木看到森林。