【发布时间】:2010-07-13 08:25:35
【问题描述】:
我在我的 WinForms 应用程序中使用 NotifyIcon(系统托盘图标)。我也有一个 ContextMenuStrip 分配给它。当用户右键单击 NotifyIcon 时,会弹出此 ContextMenuStrip。
这些是 NotifyIcon 拥有的唯一事件。
Click
DoubleClick
MouseClick
MouseDoubleClick
MouseDown
MouseMove
MouseUp
此 contextMenuStrip 项 (ToolStripMenuItem) 是动态生成的。我的意思是只有很少的默认项目,如“关于”、“退出”、“帮助”等。但是当用户右键单击它时,其他项目会动态生成并插入到此菜单中。我正在生成项目并在Click 事件处理程序中插入 contextMenuStrip
现在,我有两个问题:
问题是它显示默认菜单条,然后我的
Click事件处理程序执行并弹出新的更新菜单。我怎样才能避免这种情况?我根本不想看到默认菜单。换句话说,我需要覆盖默认行为。其他问题是因为我正在处理
Click事件(因为我没有找到 RightClick 事件)左键单击也由同一个处理程序处理。我想在左键单击时做不同的事情(如显示应用程序窗口)并在右键单击时显示动态生成的 contextMenuStrip。如何做到这一点?为什么会有两个不同的事件,比如
Click和MouseClick?我们还会点击什么?这两个不是相互依存的。我的意思是,只要有鼠标点击,就会有点击。
如果你能指出一些例子。那太好了!
【问题讨论】: