0
我正在使用一个插件(使用System.ComponentModel.Composition
)为应用程序在Windows UI的通知区域中放置图标。在附加到NotifyIcon的ContextMenu中延迟的Click事件
trayMenu.MenuItems.Clear();
// Create context menu items
foreach(IJob job in jobs) {
MenuItem menuItem = new MenuItem(job.Name) {Tag = job};
menuItem.Click += MenuItemClick;
trayMenu.MenuItems.Add(menuItem);
}
private void MenuItemClick(object sender, EventArgs e) {
// ...
}
现在,当我点击该图标的右键菜单项,在Click
处理程序没有被调用。
有趣的是,当我再次右键单击图标时(单击菜单项后),先前单击的MenuItem
的处理程序被调用。左键单击或悬停在图标上不会触发此步骤。
这是怎么回事?
更新:我有一种强烈的感觉,我的问题与this question有关。但我仍然在想如何将它应用到我的插件/应用程序。
你是否做过任何不寻常的事情,比如自己显示上下文菜单?点击菜单外部是否会导致它消失? –
@Hans Passant:不,我认为我没有做任何不寻常的事情。菜单打开由NotifyIcon处理。点击菜单外部会导致它消失(如预期的那样)。 –