c # Control.Validating событие оставляет фокус мыши на других элементах управления? - PullRequest
1 голос
/ 17 октября 2010

У меня есть WinForm c # .net 2.0 с текстовым полем и трекбаром. Событие проверки текстового поля устанавливает e.cancel, если пользователь нажимает на трекбар и проверка не проходит. Затем я остаюсь с курсором в текстовом поле, но фокус мыши остается на трекбар, поэтому перемещение мыши перемещает трекбар.

Я пытался установить SetFocus в событии проверки (плохо по MSDN, но я все равно пытался), но мышь остается на трекбар.

Как отсоединить фокус мыши от трекбара?

1 Ответ

0 голосов
/ 17 октября 2010
  • Отображаете ли вы сообщение об ошибке проверки в окне сообщения.Если это так, то отпускание трекбара мышью не сработало бы, так как окно сообщения взяло бы под контроль, и именно поэтому вы видите, что трекбар движется после выхода из окна сообщения.
  • MessageBox и проверяющее событие не сочетаются друг с другом.Лучший способ сделать это - использовать ErrorProvider.
...