2013-08-26 3 views
0

Я фокусируюсь только на клавиатуре вверх, вниз, вправо, влево в WPF. И я не хочу, чтобы произошло другое ключевое событие. См. Приведенный ниже код, как назначить или установить другой ключ в значение/dbnull? Я получил ошибку в e.Key = NothingЗаменить пустое значение на клавиатуру Событие

Private Sub Button1_KeyUp(sender As Object, e As KeyEventArgs) Handles Button1.KeyUp 
    Select Case e.Key 
     Case Key.Right 
      Keyboard.Focus(Button2) 
     Case Key.Down 
      Keyboard.Focus(Button3) 
     Case Else 
      e.Key = Nothing 
    End Select 
End Sub 

ответ

2

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

+0

Пример исходного кода для публикации. 'Private Sub ReturnToGame_PreviewKeyDown (отправитель As Object, е Как KeyEventArgs) Ручки ReturnToGame.PreviewKeyDown Select Case e.Key Case Key.Left Keyboard.Focus (Button2) Case Key.Up Keyboard.Focus (Button3) End Select e.Handled = True End Sub' – Fire

2

вы можете использовать PreviewKeyUp событие и отметьте e.Handled как истинный

+0

Спасибо за помощь, PreviewKeyDown подходит лучше. Если вы используете PreviewKeyUp, он будет прыгать дважды. – Fire

Смежные вопросы