此段代码是从DevExpress官方回复文件中得到的。可以用来优化GridView的操作体验。

  1. /// <summary>  
  2. /// GridView添加新行
  3. /// </summary>
  4. public sealed class GridNewRowHelper
  5. {
  6.  
  7. private readonly GridView _View;
  8. /// <summary>
  9. /// 构造函数:按键为GridView添加新行(Tab/Enter)
  10. /// </summary>
  11. /// <param name="view">目标GridView</param>
  12. public GridNewRowHelper(GridView view)
  13. {
  14. _View = view;
  15. _View.HiddenEditor += _View_HiddenEditor;
  16. view.GridControl.EditorKeyDown += GridControl_EditorKeyDown;
  17. view.GridControl.KeyDown += new KeyEventHandler(GridControl_KeyDown);
  18. }
  19.  
  20. void _View_HiddenEditor(object sender, EventArgs e)
  21. {
  22. }
  23.  
  24. void GridControl_KeyDown(object sender, KeyEventArgs e)
  25. {
  26. e.Handled = OnKeyDown(e.KeyCode, e.Modifiers);
  27. }
  28.  
  29. void GridControl_EditorKeyDown(object sender, KeyEventArgs e)
  30. {
  31. e.Handled = OnKeyDown(e.KeyCode, e.Modifiers);
  32. }
  33. private bool OnKeyDown(Keys keyCode, Keys modifiers)
  34. {
  35. if (modifiers == Keys.None && (keyCode == Keys.Enter || keyCode == Keys.Tab))
  36. {
  37. return CheckAddNewRow();
  38. }
  39. return false;
  40. }
  41.  
  42. private bool CheckAddNewRow()
  43. {
  44. if (_View.FocusedColumn.VisibleIndex == _View.VisibleColumns.Count - )
  45. {
  46. if (_View.IsNewItemRow(_View.FocusedRowHandle))
  47. {
  48. _View.PostEditor();
  49. _View.UpdateCurrentRow();
  50. }
  51. if (_View.IsLastRow)
  52. return AddNewRow();
  53. }
  54. return false;
  55. }
  56.  
  57. private bool AddNewRow()
  58. {
  59. _View.AddNewRow();
  60. _View.FocusedColumn = _View.VisibleColumns[];
  61. return true;
  62. }
  63. }
  64.  
  65. 使用方法:
  66.  
  67. GridNewRowHelper newRowView=new GridNewRowHelper (targetView);

GridView Tab/Enter键插入新行的更多相关文章

  1. SQL-表的操作(创建表,删除表,更改列,插入新行,更改行的值,删除表中数据)

    一,操作表及列 1.创建表: CREATE TABLE test (ID int  PRIMARY KEY IDENTITY,Name varchar(20) ) 2.删除表 DROP TABLE t ...

  2. insert into 的另一种添加插入新行方式

    语法 1 插入一行 insert into table (field1,field2.....) select value1,value2........; 2 插入多行 insert into ta ...

  3. dataTable 表插入新行

    DataRow dr = dt.NewRow();//定义新行            dr["sumPrice"] = sumPrice;//对应字段赋值            d ...

  4. FlexCel 插入公式和插入新行

    //http://www.tmssoftware.biz/flexcel/doc/vcl/api/FlexCel.Core/TExcelFile/InsertAndCopyRange.html#tex ...

  5. C# 在Word表格中插入新行(表格含合并行)

    public string CreateWordFile(string CheckedInfo)         {             string message = "" ...

  6. Excel表格中无法中间插入新行列! 提示:在当前工作表的最后一行或列中,存在非空单元格,解决方案

    excel中新增行列时报错: 提示:在当前工作表的最后一行或列中,存在非空单元格,所以无法插入新行或新列.

  7. INSERT - 在表中创建新行

    SYNOPSIS INSERT INTO table [ ( column [, ...] ) ] { DEFAULT VALUES | VALUES ( { expression | DEFAULT ...

  8. 【新特性速递】单元格导航(上下左右键,TAB键和ENTER键)

    上下左右按键 其实单元格导航(上下左右按键,需要启用表格的ShowSelectedCell属性)一直都存在,只不过之前的版本(v5.5.0)有一些小的BUG. BUG1 比如锁定列存在时,上下左右键只 ...

  9. 将插入的新行放入dataGridView的第一行

    将插入的新行放入dataGridView的第一行 习惯这样用的: dataGridView1.Rows.Add(dataRow);改成:dataGridView1.Rows.Insert(0,data ...

随机推荐

  1. 【转】Android学习系列–App离线下载功能实现

    原文:http://www.cnblogs.com/qianxudetianxia/archive/2011/07/20/2108965.html 宜未雨而绸缪,毋临渴而掘井.----朱用纯<治 ...

  2. Android项目---语言适配

    android多国语言文件夹 android多国语言文件夹文件汇总如下:(有些语言的书写顺序可能跟中文是相反的) 中文(中国):values-zh-rCN 中文(台湾):values-zh-rTW 中 ...

  3. VS生产的编辑方法和编辑窗体

    MVC5入门学习系列⑤   检查VS生产的编辑方法和编辑窗体 前面我们一步使用强类型,然后创建Controller(控制器)的时候,VS默认已经给我们把CURD都简单的实现了.这篇的话就简单的看下它默 ...

  4. Redis简介与简单安装

    Redis简介与简单安装   一.NoSQL的风生水起 1.1 后Web2.0时代的发展要求 随着互联网Web2.0网站的兴起,传统的关系数据库在应付Web2.0网站,特别是超大规模和高并发的SNS类 ...

  5. Strategic Game HDU

    Strategic Game                                                         Time Limit: 20000/10000 MS (J ...

  6. Asp.Net异步编程

    Asp.Net异步编程-使用了异步,性能就提升了吗? Asp.Net异步编程 写在前面的话,很久没有写Blog了,不对,其实一致就没有怎么写过.今天有空,我也来写一篇Blog 随着.Net4.5的推出 ...

  7. API变了,客户端怎么办?

    使用ASP.NET Web Api构建基于REST风格的服务实战系列教程[九]——API变了,客户端怎么办? 系列导航地址http://www.cnblogs.com/fzrain/p/3490137 ...

  8. .NET编程规范

    .NET开发编程规范 第1章 程序的版式 版式虽然不会影响程序的功能,但会影响可读性.程序的版式追求清晰.美观,是程序风格的重要构成因素. 可以把程序的版式比喻为"书法".好的&q ...

  9. 生成自己的Webapi帮助文档(一)

    最近Webapi接口的开发刚刚进入尾声,随之而来的是让用户知道接口的详细参数信息,看过淘宝的接口文档,但网上没找到他的实现方式 虽然新建Webapi时C#也会给你一个帮助文档的Area,但是总觉得有些 ...

  10. Java多线程学习笔记——从Java JVM对多线程数据同步的一些理解

       我们知道在多线程编程中,我们很大的一部分内容是为了解决线程间的资源同步问题和线程间共同协作解决问题.线程间的同步,通俗我们理解为僧多粥少,在粥有限情况下,我们怎么去防止大家有秩序的喝到粥,不至于 ...