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. 关于sqlserver2012重启后ID自增1000的问题解决方案

    1. Open "SQL Server Configuration Manager" 2. Click "SQL Server Services" on the ...

  2. ios开发中加载的image无法显示

    昨天遇到一个较奇葩的问题,imageName加载的图片显示不出来,网上查了好多资料还是没找到解决的方法: 之前图片是放在项目中SupportingFiles文件下的,怎么加载都能显示图片,于是将图片拿 ...

  3. jquery 只有二级下拉菜单

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  4. java 整体字体样式设置

    两种方式:   1.UIManager.put("Button.font", new Font("MS UI Gothic", Font.PLAIN, 24)) ...

  5. C# Winform 开发框架

    C/S系统开发框架-企业版 V4.0 (Enterprise Edition) 简介: http://www.csframework.com/cs-framework-4.0.htm 视频下载: 百度 ...

  6. git 基础命令

    1.git init git 初始化仓库 2.git add . git 添加全部文件 3.git add xxx.txt   git 添加单独文件 4.git commit -m "提交的 ...

  7. jQuery组件写法

    知识点: 什么是插件 jQuery插件的模式 jQuery插件的Lightweight Start模式(入门级插件模式) 8.1 插件(Plug-in) “插件”这个关键字,估计大家在日常生活中经常有 ...

  8. 【关于JavaScript】常见表单用户名、密码不能为空

    在论坛等系统的用户注册功能中,如果用户忘记填写必填信息,如用户名.密码等,浏览器会弹出警告框,提示用户当前有未填信息. 这个典型的应用就是通过JavaScript实现的.如图所示是一个简单的用户注册页 ...

  9. ADI加速度计基础原理

  10. Features of Spring Web MVC

    21.1.1 Features of Spring Web MVC Spring Web Flow Spring Web Flow (SWF) aims to be the best solution ...