MouseEnter和MouseLeave事件未在用户控件中引发

时间:2011-06-20 10:33:44

标签: c# picturebox mouseenter

问题在于:

  • 我有一个简单的c#form
  • 我有一个简单的c#用户控件,其中包含一个图片框和其他按钮。
  • 我的表单包含一个用户控件实例。
  • 我希望当用户在图片框中执行mouseEnter时,鼠标光标会改变,当用户对图片框执行mouseEave时,鼠标会恢复正常。

现在发生的事情是事件根本没有被解雇。我将断点放入MouseOver,MouseEnter,MouseMove,MouseLeave等,并且没有任何一个被解雇。这是我第一次在C#中遇到这个问题。

我认为它与“路由事件”有关,但我无法弄明白。如果有另一种方法来实现我正在做的事情,这也将被视为一种解决方案。重要的是,最后,用户控件将成为鼠标光标在其“领土”上的主人。

提前致谢!

2 个答案:

答案 0 :(得分:1)

您正在使用哪些活动? UserController.MouseEnterUserController.MouseLeave事件或PictureBox.MouseEnterPictureBox.MouseLeave事件?

如果鼠标通过PictureBox直接进入用户控制器,PictureBox将处理事件,您应该使用后者。

答案 1 :(得分:1)

正如InBetween所写,PictureBox.MouseXXX应该被解雇。您可以在UserControl

中捕获这些内容

如果您希望代表UserControl触发事件,请停用PictureBox。请注意,事件将触发UserContrl上的任何鼠标位置,而不仅仅是PictureBox。