MouseEnter и MouseLeave Событие не возникает в пользовательском элементе управления - PullRequest
2 голосов
/ 20 июня 2011

Вот проблема:

  • У меня есть простая форма c #
  • У меня есть простой пользовательский элемент управления c #, содержащий изображение и другую кнопку.
  • Моя форма содержит один экземпляр пользовательского элемента управления.
  • Я хочу, чтобы, когда пользователь делал mouseEnter в графическом окне, курсор мыши менялся, а когда пользователь делал MouseLeave в графическом окне, мышь возвращалась к нормальной работе.

То, что происходит сейчас, это то, что события вообще не запускаются. Я поместил точку останова в MouseOver, MouseEnter, MouseMove, MouseLeave и т. Д., И ни одна из них не сработала. Я впервые сталкиваюсь с этой проблемой в C #.

Я думаю, что это как-то связано с "перенаправленным событием", но я не могу понять это. Если есть другой способ добиться того, что я делаю, это также будет считаться решением. Важно то, что в конце пользовательский элемент управления будет хозяином курсора мыши над своей «территорией».

Заранее спасибо!

Ответы [ 2 ]

1 голос
/ 20 июня 2011

Как писал InBetween, PictureBox.MouseXXX должно быть запущено. Вы можете заманить их в ловушку в вашем UserControl.

Если вы хотите, чтобы событие было запущено от имени UserControl, просто отключите PictureBox. Имейте в виду, что событие будет вызываться для любой позиции мыши над UserContrl, а не только для PictureBox.

1 голос
/ 20 июня 2011

Какие события вы используете? События UserController.MouseEnter и UserController.MouseLeave или события PictureBox.MouseEnter и PictureBox.MouseLeave?

Вы должны использовать последнее, так как PictureBox будет обрабатывать событие, если мышь входит в пользовательский контроллер напрямую через PictureBox.

...