在带有子项目(C#)的菜单项上获取单击事件

Erl*_* D. 4 c# events click menuitem

我正在创建一个上下文菜单,其中应包含所有文件夹,子文件夹和所选文件夹中文件的列表。我希望菜单在单击时打开文件和文件夹,但是如果menuitem具有子项,则单击事件不会注册。

void Foo(string Title)
{
    MenuItem = new MenuItem(Title);
    MenuItem.Click += new EventHandler(MenuItem_Click);
    ContextMenu.MenuItems.Add(MenuItem);
}

void MenuItem_Click(object sender, EventArgs e)
{
    MessageBox.Show("This box will only show when menuitems without subitems are clicked");
}
Run Code Online (Sandbox Code Playgroud)

即使菜单项有子项,如何使点击事件触发?

Jon*_*eet 5

听起来菜单似乎不是这里最合适的UI小部件。我相信您没有引发click事件的原因是,假定带有子菜单的菜单项在被单击时才展开其子级,而不执行任何其他操作。

这也可能是用户的假设。

文档中提到了此行为MenuItem.Click

注意:如果MenuItem的MenuItems属性包含任何项目,则不会引发此事件。父菜单项不会引发此事件。