在显示上下文菜单之前触发了C#MouseLeave?

时间:2011-04-11 03:34:50

标签: c# winforms events contextmenu

我的表单上有一个ContextMenu,默认情况下应禁用某些选项,但是当用户右键单击Panel时启用。

我写这个的方式,允许这个特定菜单项的Panel有两个事件处理程序:

  • MouseEnter - >启用选项
  • MouseLeave - >禁用选项

MouseEnter有效,但遗憾的是,只要用户右键单击,就会调用MouseLeave。这意味着无论用户右键单击何处,菜单项始终处于禁用状态。

任何想法如何解决这个问题?

1 个答案:

答案 0 :(得分:3)

这是不可避免的。弹出上下文菜单后,菜单将捕获鼠标并触发面板的MouseLeave事件。你将不得不以不同的方式做到这一点。我想不出一个不错的选择,对你来说,你这样做是没有任何意义的。 Panel有自己的ContextMenuStrip属性,也许这是一个领先者。或者ContextMenuStrip.SourceControl属性。