首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WPF DataGrid创建新行TabStop

WPF DataGrid创建新行TabStop
EN

Stack Overflow用户
提问于 2017-03-08 16:37:12
回答 1查看 506关注 0票数 0

我有一个DataGrid和CanUserAddRows="True“。我的表有多个列;用户可以通过按Tab来编辑单元格并跳转到下一个单元格。当您到达最后一列时,Tab将带您到下一行。

但是,如果您正在编辑New,当您在最后一列中单击时,焦点将在创建新行之前跳转到窗口中的下一个控件。

我需要做的是重点跳转到DataGrid中新创建的行。老实说,我不知道该从哪里着手解决这个问题。

编辑:我应该澄清,新行的第一列应该得到焦点(假设有人用键盘填充网格,使用选项卡)。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-03-08 17:26:34

您可以处理PreviewKeyDown事件,以便DataGrid拦截TAB键并以编程方式按下ENTER键:

代码语言:javascript
复制
<DataGrid x:Name="dg" ... PreviewKeyDown="dg_PreviewKeyDown" />
代码语言:javascript
复制
private void dg_PreviewKeyDown(object sender, KeyEventArgs e)
{
    if (e.Key == Key.Tab)
    {
        e.Handled = true;

        var key = Key.Enter;
        var target = Keyboard.FocusedElement;
        var routedEvent = Keyboard.KeyDownEvent;

        dg.RaiseEvent(new KeyEventArgs(Keyboard.PrimaryDevice, PresentationSource.FromVisual(dg), 0, key)
        {
            RoutedEvent = routedEvent
        });
    }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42676899

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档