首页 > 解决方案 > 如何使 tab 键跳过 WPF 中的数据网格,而不是在按下 tab 键时从一个字段移动到另一个字段

问题描述

如何使 Tab 键跳过 WPF、C# 中的数据网格。因此,不是在按下 Tab 键时从一个字段移动到另一个字段,而是需要 Tab 键在数据网格存在后跳过数据网格而不从一个字段移动到另一个字段?

标签: c#wpf

解决方案


您需要抑制 tab 键的事件并添加自己的逻辑。

首先添加一个事件处理程序(在代码或 XAML 中):

private void Window_Loaded(object sender, RoutedEventArgs e)
{
    this.KeyDown += new KeyEventHandler(MainWindow_KeyDown);
}

然后,实现你的逻辑:

void MainWindow_KeyDown(object sender, KeyEventArgs e)
{
    if (e.Key == Key.Tab)
    {
        e.SuppressKeyPress = true;

        FocusManager.SetFocusedElement(parentElement, theElementAfterTheGridID);
    }
}

我还没有测试它,但它应该接近那个代码。

当然,这将发生在每次按标签时,这取决于您希望它的行为方式。您还可以检查焦点元素是网格还是该网格的单元格。


推荐阅读