GridView最后一列按回车键自动新增一条记录

  GridView最后一列按回车键自动新增一条记录

GridView最后一列按回车键自动新增一条记录


描述


在GridView表格最后一条记录的最后一栏按回车键新增一条记录。


GridView.OptionsNavigation有EnterMoveNextColumn的功能,即按回车自动将焦点移到下一列。但用户要求当移到最后一行最后一列时按回车要自动新增一条记录。


实现方法:只需要处理表格KeyDown事件。

 

C# Code:


/// <summary>
/// 处理表格KeyDown事件。
/// <para>在表格最后一条记录的最后一栏按回车键新增一条记录</para>
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
public static void OnDetailGridViewKeyDown(object sender, KeyEventArgs e)
{
   if (!(e.KeyCode == Keys.Enter || e.KeyCode == Keys.Tab)) return;
   
   GridView view = (GridView)sender;
   
   //最后一条记录
   if ((view.FocusedRowHandle == view.RowCount - 1) &&& IsLastEditableColumn(view, view.FocusedColumn))
   {
      e.Handled = true;
      
      //下面代码: 最后可编辑栏位,则新增记录.
      Form dataForm = view.GridControl.FindForm();
      
      if ((dataForm is frmBaseDataForm) & (view.GridControl.EmbeddedNavigator.Buttons.CustomButtons.Count > 0))
      {
         NavigatorButtonBase addButton = view.GridControl.EmbeddedNavigator.Buttons.CustomButtons[0];//新增按钮
         view.GridControl.EmbeddedNavigator.Buttons.DoClick(addButton);
      }
   }
   
}


private static bool IsLastEditableColumn(GridView view, GridColumn focusedColumn)
{
   int idx = view.VisibleColumns.IndexOf(focusedColumn);
   for (int i = view.VisibleColumns.Count - 1; i >= 0; i--)
   {
      GridColumn col = view.VisibleColumns[i];
      //忽略不可编辑Column
      if (!col.OptionsColumn.AllowEdit) continue;
      if (idx != i)
      return false; //非最后一个可编辑Column
      else
      return true;
   }
   return true;
}


//来源:C/S框架网(www.csframework.com) QQ:1980854898



在Form.Load事件内绑定GridView.KeyDown事件。


C# Code:

gvDetail.KeyDown = new KeyEventHandler(GridMovetor.OnDetailGridViewKeyDown);



适用版本:所有框架版本。

GridMovetor类下载:



C/S框架网|原创精神.创造价值.打造精品

扫一扫加微信
C/S框架网作者微信 C/S框架网|原创作品.质量保障.竭诚为您服务

版权声明:本文为开发框架文库发布内容,转载请附上原文出处连接
C/S框架网
发表评论

评论内容
昵称:
关联文章

GridView最后回车键自动记录
表格内回车键自动移动下, 最后最后自动新增记录
原创:C#源码 GridMovetor回车自动跳到下自动新增记录(www.csframework.com)
基类窗体处理回车键自动跳到下输入控件
界面内回车键自动激活下一个控件
DevExpress GridView表格记录位置调整,实现DataRow记录排序
弹出窗体勾选多记录自动添加到明细表
GridView实现自定义按钮及中间插入记录排序功能
从输入框跳转到明细表格并新增记录
C# DataGridView 自动给新增记录当前单元格赋值
企业版:入仓单(IN)份无打印窗体的报表例子,查主从表数据,支持打印图片
C# Winform 回车键查找下一个可设置焦点的组件
当查询表格的点了排序,新增记录后定位记录有误
使用ToolTipController自动提示GridView资料行的内容
C# C/S架构下客户、供应商等大批量数据单记录选取组件
OracleDataAdapter违反并发性: UpdateCommand影响了预期 1 记录中的 0
C# C/S架构明细表产品资料输入及单记录选取方案
修改单价/数量, 自动计算金额
CSFramework开发框架报错:违反并发性:UpdateCommand影响了预期1记录中的0
新增记录自动生成记录的序号号码(或单据号码)并填充文本框