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


  • 相关阅读:
    mysql的sql性能分析器
    Maven(一)
    SVN使用(二)
    SVN使用(一)
    php smarty section使用
    php smarty foreach循环注意
    PHP unlink() 函数
    PHP file_exists() 函数
    PHP realpath() 函数
    PHP dirname() 函数
  • 原文地址:https://www.cnblogs.com/nov5026/p/4798951.html
Copyright © 2011-2022 走看看