我有一个文本框、一个 DataGrid 和一个按钮。
当文本框获得焦点时,DataGrid 是可见的。用户在文本框中写入一些文本,并选择 DataGrid 的第一列中的匹配文本。
当用户按下回车键时,所选行的第一列的值被传输到文本框,然后 DataGrid 隐藏并且文本框下方的按钮获得焦点。这是代码:
If e.Key = Key.Return Then
Dim ue As FrameworkElement = e.OriginalSource
txt.Text = DataGrid1.SelectedItem(0).ToString
ue.MoveFocus(New TraversalRequest(FocusNavigationDirection.Next))
End If
此代码工作正常。我希望在用户按下时具有相同的行为Ctrl + Down_Arrow
。
这是执行此操作的代码,但它不起作用。我的意思是它选择选定行的第一列的值并将其传输到文本框。但它不会将焦点转移到按钮。我的意思是文本框不会失去焦点。
If (Keyboard.IsKeyDown(Key.LeftCtrl) = True Or Keyboard.IsKeyDown(Key.RightCtrl) = True) And e.Key = Key.Down Then
Dim ue As FrameworkElement = e.OriginalSource
txt.Text = DataGrid1.SelectedItem(0).ToString
ue.MoveFocus(New TraversalRequest(FocusNavigationDirection.Down))
End If
我已经尝试过这个词Next
而不是Down
上面的代码,但它也不起作用。