using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using CYSoft.UI.Common;
using CYSoft.Common;
using CYSoft.TS.EntityLib;
using CYSoft.IC.Common.A0;
//Dev 引用
using DevExpress.XtraEditors;
using DevExpress.XtraEditors.Repository; namespace CYSoft.TS.UI.BookInfo
{
public partial class FrmCellEdit : TS.UI.Common.FrmEditBase
{
//接口
public IC.BookInfo bb = null;
public FrmCellEdit()
{
InitializeComponent(); bb = new IC.BookInfo(); InitCtl(); } /// <summary>
/// 初始化
/// </summary>
public void InitCtl() {
//克隆表结构 绑定到grid
DataTable dt = b.BookGetByCode("").Tables[0].Clone();
grid.DataSource = dt; //自定义方法 初始化 gv
CYSoft.UI.Common.Function.InitGrid(this.gv,
new string[] {"编码","名称" },
new string[] {"BookNo","BookName" },
new int[] {100,100 }); //编辑列 设置
RepositoryItemTextEdit rite = new RepositoryItemTextEdit();
//keydown事件
rite.KeyDown+=new KeyEventHandler(rite_KeyDown);
gv.Columns["BookNo"].ColumnEdit = rite; gv.CellValueChanged += new DevExpress.XtraGrid.Views.Base.CellValueChangedEventHandler(gv_CellValueChanged);
gv.InitNewRow += new DevExpress.XtraGrid.Views.Grid.InitNewRowEventHandler(gv_InitNewRow);
} /// <summary>
/// 单元格回车
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
void rite_KeyDown(object sender, KeyEventArgs e) {
//用户点击 回车
if (e.KeyCode == Keys.Enter) {
TextEdit te = sender as TextEdit;
//值为空时返回
if (te == null || string.IsNullOrEmpty(te.Text.Trim())) {
return;
} //自定义方法,根据用户输入内容从数据库获取数据
DataSet ds = bb.BookGetByCode(te.Text.Trim());
//有数据记录
if (ds.Tables[0].Rows.Count > 0) {
//初始化DataRow 值为 第一行数据
DataRow dtBook = ds.Tables[0].Rows[0];
//初始化DataRow 值为
DataRow dr = gv.GetDataRow(gv.FocusedRowHandle);
foreach (DataColumn dc in dr.Table.Columns) {
dr[dc.ColumnName] = dtBook[dc.ColumnName].ToString();
}
//终止行编辑
dr.EndEdit();
//调用方法
SetCellEdit(gv.FocusedRowHandle);
//自定义类 对gv的一些设置
CYSoft.TS.UI.Common.TSFunc.SetBestFitColumns(gv);
} } } /// <summary>
/// 单元格处理
/// </summary>
/// <param name="row"></param>
private void SetCellEdit(int row)
{
Application.DoEvents();
try
{
gv.BeginInit();
grid.Focus();
gv.Focus();
gv.SelectCell(row, gv.Columns["BookNo"]);
gv.FocusedColumn = gv.Columns["BookNo"];
gv.ShowEditor();
}
finally
{
gv.EndInit();
}
} /// <summary>
/// 单元格 焦点离开 触发该事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
void gv_CellValueChanged(object sender, DevExpress.XtraGrid.Views.Base.CellValueChangedEventArgs e)
{
if (e.Column.FieldName == "BookNo")
{
if (e.Value == null)
return;
}
} void gv_InitNewRow(object sender, DevExpress.XtraGrid.Views.Grid.InitNewRowEventArgs e)
{
SetCellEdit(e.RowHandle);
} /// <summary>
/// 增加新行
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btnNewLine_Click(object sender, EventArgs e)
{
DataTable dt = grid.DataSource as DataTable;
if (dt == null)
return; gv.AddNewRow();
}
}
}

版权声明:本文为博主原创文章,未经博主允许不得转载。

DevExpress控件 GridControl 单元格编辑 回车的更多相关文章

  1. MFC List Control 控件添加单元格编辑,实现可编辑重写

    在实现随机生成四则运算的个人项目中,目前已经完成基本功能,想要把程序变成一个Windows界面的程序.原本以为学习过MFC,应该很快就能完成.但是由于以前用的都是VC6.0,这次用了VS2010,稍微 ...

  2. DevExpress控件-GridControl根据条件改变单元格(Dev GridControl 单元格着色)

    DevExpress控件-GridControl根据条件改变单元格颜色,如下图: 解决办法:可以参考:http://www.cnblogs.com/zeroone/p/4311191.html 第一步 ...

  3. Dev控件GridView单元格绑定控件

    Dev控件GridView单元格绑定控件 //文本按钮 RepositoryItemButtonEdit btnFields = new RepositoryItemButtonEdit();//创建 ...

  4. GridControl单元格编辑验证的方法

    本文实例演示了DevExpress实现GridControl单元格编辑验证的方法,比较实用的功能,具体方法如下: 主要功能代码如下: /// <summary> /// 自定义单元格验证 ...

  5. DevExpress控件GridControl中的布局详解 【转】

    DevExpress控件GridControl中的布局详解 [转] 2012-10-24 13:27:28|  分类: devexpress |  标签:devexpress  |举报|字号 订阅   ...

  6. DevExpress控件-GridControl根据条件改变单元格/行颜色--转载

    DevExpress控件-数据控件GridControl,有时我们需要根据特定条件改变符合条件的行或者单元格颜色达到突出显示目的,现在动起鼠标跟我一起操作吧,对的,要达到这个目的您甚至都不用动键盘. ...

  7. DevExpress控件-GridControl根据条件改变单元格/行颜色(Dev GridControl 单元格着色) z

    DevExpress控件-数据控件GridControl,有时我们需要根据特定条件改变符合条件的行或者单元格颜色达到突出显示目的,现在动起鼠标跟我一起操作吧,对的,要达到这个目的您甚至都不用动键盘. ...

  8. DevExpress控件-- Gridcontrol合并表头

    写在前面的话: 在园子里逛了有一段时间了,一直想写点东西,但苦于自己的水平有限,生怕写出来的东西浪费了读者的时间.楼主有幸参加了公司DevExpress控件的培训,独乐乐不如众乐乐,特附上Demo以飨 ...

  9. DevExpress 控件 GridControl常见用法

    刚接触DevExpress第三方控件,把GridControl的常见用法整理一下,以供参考: 说明: gcTest   GridControl gvText    GridView //隐藏最上面的G ...

随机推荐

  1. SGU Volume 2

    SGU200.Cracking RSA------------------------★高斯消元 SGU207.Robbers -------------------------------数论 SG ...

  2. select源码分析(linux2.6.11)

    本文以tcp poll为例子来分析select的源码,下面是函数调用顺序.select--->sys_select->do_select--->sock_poll--->tcp ...

  3. Linux 信号量同步编程

    前一篇文章概述了Linux 系统中信号量互斥编程,这篇文章正好是前一篇的姊妹篇----信号量同步.说它们是姊妹篇是因为它们都是利用了内核的信号量机制实现了进程间的通信.因为两者所解决的问题不同,因此它 ...

  4. 2、Python djang 框架下的word Excel TXT Image 等文件的下载

    2.python实现文件下载 (1)方法一.直接用a标签的href+数据库中文件地址,即可下载.缺点:word excel是直接弹框下载,对于image txt 等文件的下载方式是直接在新页面打开. ...

  5. LVS原理详解及部署之二:LVS原理详解(3种工作方式8种调度算法)

    一.集群简介 什么是集群 计算机集群简称集群是一种计算机系统,它通过一组松散集成的计算机软件和/或硬件连接起来高度紧密地协作完成计算工作.在某种意义上,他们可以被看作是一 台计算机.集群系统中的单个计 ...

  6. STM32随记

    定时器(Timer): 分为高级,通用,基本三种. M3:8个 高级:TIM1,TM8 通用:TIM2~TIM5 基本:TIM6,TIM7 M0:8个 高级:TIM1 通用:TIM2,TIM3,TIM ...

  7. 利用java实现一个简单的远程监控程序

    一般的远程监控软件都是用c或者c++等语言开发的,而使用java如何来实现相同的功能呢. 首先我们先介绍一下一个简单的远程监控程序的实现原理. 功能一,远程屏幕监视 (1) 必须要有监控端与被监控端, ...

  8. uboot启动linux的过程

    一.概述 linux内核镜像常见到的有两种形式,zImage和uImage.这两种文件的格式稍有差别,所以启动这两种格式的内核镜像也会有所不同.目前,uboot只支持启动uImage类型的镜像,对zI ...

  9. spring- properties 读取的五种方式

    转至:http://www.cnblogs.com/hafiz/p/5876243.html 方式1.通过context:property-placeholder加载配置文件jdbc.properti ...

  10. Mvc Model 模板的获取【学习笔记】

    MVC的Model模板有两种:一种编辑模式(@Html.EditorFor()).一种显示模式(Html.DisplayFor()). 模板的获取与执行(以下转自这里): 当我们调用HtmlHelpe ...