Как узнать, когда пользователь нажал за пределами вашего контроля? - PullRequest
3 голосов
/ 13 ноября 2010

У меня есть собственный UserControl.Я хочу использовать его в нескольких разных продуктах, поэтому я хочу что-то, что может быть реализовано внутри самого UserControl.Я хочу знать, когда пользователь щелкнул за пределами UserControl, чтобы я мог скрыть его, как в ComboBox.Как я могу это сделать?

Я пытался обработать событие click, но, похоже, оно срабатывает только в том случае, если щелчок произошел в пределах элемента управления.

Ответы [ 3 ]

3 голосов
/ 13 ноября 2010

Это то, для чего предназначено свойство Capture. Установите для него значение true, и все сообщения мыши будут перенаправлены на ваш элемент управления, даже если он выходит за пределы окна. Проверьте свойство e.Location в событии MouseDown.

1 голос
/ 13 ноября 2010

Хм, вы можете достичь желаемого, прослушивая события GotFocus / LostFocus. ComboBox'ы фокусируют выпадающие списки, когда открывают, и закрывают, когда теряют фокус

0 голосов
/ 13 ноября 2010

сделать это

  • Выберите все элементы управления в вашей форме, включая форму
  • В окне свойств выберите событие MouseClick
  • Теперь введите ниже код в Common_MouseClick

Код:

 if (!sender.Equals(yourControl))
  {
        yourControl.Visible=false;
  }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...