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

本文关键字:MouseEnter MouseLeave 事件 控件 用户 | 更新日期: 2023-09-27 17:59:44

问题如下:

  • 我有一个简单的c#表单
  • 我有一个简单的c#用户控件,其中包含一个图片框和其他按钮
  • 我的表单包含用户控件的一个实例
  • 我希望当用户在图片框中执行mouseEnter时,鼠标光标会发生变化,当用户执行mouseLeave of the picturebox时,鼠标会恢复正常

现在发生的事情是,这些事件根本没有发生。我在MouseOver、MouseEnter、MouseMove、MouseLeave等中设置了断点,但它们都没有被触发。这是我第一次在C#中遇到这个问题。

我认为这与"路由事件"有关,但我不明白。如果有另一种方法可以实现我正在做的事情,这也将被视为一种解决方案。重要的是,最终,用户控件将成为鼠标光标在其"领土"上的主控器。

提前感谢!

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

您正在使用哪些事件?UserController.MouseEnterUserController.MouseLeave事件还是PictureBox.MouseEnterPictureBox.MouseLeave事件?

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

InBetween写道,PictureBox.MouseXXX应该被激发。你可以把它们困在UserControl里。

如果希望以UserControl的名义触发事件,只需禁用PictureBox即可。请注意,该事件将针对UserContrl上的任何鼠标位置而触发,而不仅仅是PictureBox。