解释输入选项卡作为选项卡

时间:2018-04-12 21:08:19

标签: c# wpf datagrid focus uielement

我在Enter keypress上使用此代码将焦点移动到下一个,就像Tab在数据网格中那样。

uiElement.MoveFocus(new TraversalRequest(FocusNavigationDirection.Next));

在按任意一行的同一行结束时,将焦点移动到下一行,但选择保持原样。另一方面,使用Tab可以选择焦点。

有没有办法移动选择以及一些调整?

Matt Hamilton的answer很棒,但没有做出选择。

1 个答案:

答案 0 :(得分:2)

每次在DataGrid内按下回车键时,您可以执行的操作是模拟按键按键,而不是尝试以编程方式切换焦点。它看起来像这样:

private void DataGrid_PreviewKeyDown(object sender, KeyEventArgs e)
{
    if (e.Key == Key.Enter)
    {
        var dataGrid = (DataGrid)sender;
        var keyEventArgs = new KeyEventArgs(Keyboard.PrimaryDevice, PresentationSource.FromVisual(dataGrid), 0, Key.Tab)
        {
            RoutedEvent = Keyboard.KeyDownEvent,
        };

        dataGrid.RaiseEvent(keyEventArgs);
        e.Handled = true;
    }
}