zoukankan      html  css  js  c++  java
  • 扩展WPF的DataGrid按方向键移动焦点

    WPF的DataGrid默认的移动行为如下:

    (1)当前单元格不处于编辑状态时可使用方向键移动焦点。

    (2)当前单元格处于编辑状态时不可使用方向键移动焦点;
    按Enter键,当前单元格退出编辑状态,焦点向下移动一格;
    按Ctrl+Enter键,当前单元格退出编辑状态,焦点向上移动一格;
    按Tab键,当前单元格退出编辑状态,焦点向右移动一格,并进入编辑状态;
    按Shift+Tab键,当前单元格退出编辑状态,焦点向左移动一格,并进入编辑状态;

    “运营管理3.0″的用户普遍电脑操作水平低下,Office是它们操作的最多也是最智能的软件,它们认为所有的软件都必须是Office一样地操作,否则就给差评,所以它们要求”运营管理”的操作方式尽量与Excel相同.

    为了实现WPF的DataGrid的移动方式与Excel相同,需要重写DataGrid的OnPreviewKeyDown事件:

    public class ExDataGrid : DataGrid
        {
            protected override void OnPreviewKeyDown(KeyEventArgs e)
            {
                if (e.Key == Key.Left || e.Key == Key.Right || e.Key == Key.Up || e.Key == Key.Down)
                {
                    try
                    {
                        base.CommitEdit();
                    }
                    catch (Exception ex)
                    {
                        base.CancelEdit();
     
                        string mess = ex.Message;
                        if (ex.InnerException != null)
                            mess += "nn" + ex.InnerException.Message;
                        MessageBox.Show(mess);
                    }
                }
     
                base.OnPreviewKeyDown(e);
            }
        }
    View Code

    然后在使用DataGrid的地方换成已重写的ExDataGrid就可以了.

    转载自:http://www.yuzifu.net/index.php/2010/11/%E6%89%A9%E5%B1%95wpf%E7%9A%84datag


  • 相关阅读:
    Android:Butter Knife 8.0.1配置
    webAPI获得链接客户端IP地址
    解决WebClient或HttpWebRequest首次连接缓慢问题
    Android Studio中有用的快捷键栏
    SQL十进制和十六进制相互转换
    SQL分组查询每组前几条数据
    POJ 1011 Sticks
    POJ 1144 Network(割点)
    求无向图中的割边(桥)
    POJ 2553 The Bottom of a Graph
  • 原文地址:https://www.cnblogs.com/nov5026/p/4798951.html
Copyright © 2011-2022 走看看