【发布时间】:2021-01-29 13:34:05
【问题描述】:
我将相同的ContextMenu 分配给了一个表单和一个 NotifyIcon。
this.ContextMenu = this.contextMenu;
this.notifyIcon.ContextMenu = this.ContextMenu;
在上下文菜单的Popup 事件中,我试图找出谁在显示上下文菜单:表单(例如右键单击表单)或通知图标(右键单击通知图标):
private void ContextMenu_Popup(object sender, EventArgs e)
{
System.Diagnostics.Debug.WriteLine(this.contextMenu.SourceControl.Name);
}
但是,我总是将表单作为源代码控制,即使我右键单击通知图标。
我正在使用 C#、.NET Framework 4.6 和 Windows 窗体。
【问题讨论】:
-
您可以查看
sender对象。在我的测试项目中,当我右键单击表单时,它的SourceControl是我的表单,当我右键单击通知图标时,它是null。
标签: c# .net winforms contextmenu notifyicon