0

我有一个文本框、一个 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上面的代码,但它也不起作用。

4

0 回答 0