Использовал ли пользователь клавиатуру или мышь для выхода из WPF TextBox? - PullRequest
7 голосов
/ 14 июня 2011

У меня есть обработчик для события PreviewLostKeyboardFocus TextBox.Он срабатывает, когда я покидаю TextBox, используя клавиатуру (клавиша Tab) или мышь (щелкая другой TextBox в форме).

Обработчик получает KeyboardFocusChangedEventArgs, свойство которого называется KeyboardDevice, который не равен нулю ни в одном из сценариев (я надеялся найти здесь null при использовании мыши).

Вопрос: Как узнать, использовал ли пользователь клавиатуру илимыши оставить WPF TextBox?

1 Ответ

3 голосов
/ 23 июня 2011

e.KeyboardDevice.GetKeyStates (Key.Tab) (где e относится к типу KeyboardFocusChangedEventArgs):

  • Нет (когда мышь былаиспользуется для изменения фокуса)
  • Down, Toggled (когда TAB использовался для выхода из текстового поля)

Будет ли это работать для вас?

...