主要是应用DataGridView的EditingControlShowing事件。当单元格进入编辑模式时,可以处理执行该编辑控件的自定义初始化的此事件。

public DataGridViewTextBoxEditingControl dgvTxt = null; // 声明 一个 CellEdit   

        private void dgv2_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
{
dgvTxt = (DataGridViewTextBoxEditingControl)e.Control; // 赋值
dgvTxt.SelectAll();
dgvTxt.KeyPress += Cells_KeyPress; // 绑定到事件
} // 自定义事件KeyPress事件
private void Cells_KeyPress(object sender, KeyPressEventArgs e)
{
Kzjgsl.keyPressXS(e, dgvTxt);
}

  

public static void keyPressXS(KeyPressEventArgs e, DataGridViewTextBoxEditingControl dgvTxt)
{
if (char.IsNumber(e.KeyChar) || e.KeyChar == '.' || e.KeyChar == (char)Keys.Back)
{
e.Handled = false; //让操作生效
int j = 0;
int k = 0;
bool flag = false;
if (dgvTxt.Text.Length == 0)
{
if (e.KeyChar == '.')
{
e.Handled = true; //让操作失效
}
}
for (int i = 0; i < dgvTxt.Text.Length; i++)
{
if (dgvTxt.Text[i] == '.')
{
j++;
flag = true;
}
if (flag)
{
if (char.IsNumber(dgvTxt.Text[i]) && e.KeyChar != (char)Keys.Back)
{
k++;
}
}
if (j >= 1)
{
if (e.KeyChar == '.')
{
e.Handled = true; //让操作失效
}
}
if (k == 2)
{
if (char.IsNumber(dgvTxt.Text[i]) && e.KeyChar != (char)Keys.Back)
{
if (dgvTxt.Text.Length - dgvTxt.SelectionStart < 3)
{
if (dgvTxt.SelectedText != dgvTxt.Text)
{
e.Handled = true; ////让操作失效
}
}
}
}
}
}
else
{
e.Handled = true;
}
}

  

DataGridView的单元格控制只能输入数字的更多相关文章

  1. JS控制只能输入数字并且最多允许小数点两位

    直接上代码: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UT ...

  2. JS 控制只能输入数字并且最多允许两位小数点

    <html lang="en"> <head> <meta charset="UTF-8"> <title>JS ...

  3. 使用jquery控制只能输入数字,并且关闭输入法(转)

    控制文本框只能输入数字是一个很常见的需求,比如电话号码的输入.数量的输入等,这时候就需要我们控制文本框只能输入数字.在用js控制之后在英文输入法的状态下去敲击键盘上的非数字键是输不进去的,然而当你转到 ...

  4. DataGridView 列大写、列只能输入数字 分类: DataGridView 2014-12-07 08:40 332人阅读 评论(0) 收藏

    列大写: 说明:调用EditingControlShowing事件 private void dgvGoods_EditingControlShowing(object sender, DataGri ...

  5. jquery -- jquery控制只能输入数字和小数点

    控制文本框只能输入数字是一个很常见的需求,比如电话号码的输入.数量的输入等,这时候就需要我们控制文本框只能输入数字.在用js控制之后在英文输入法的状态下去敲击键盘上的非数字键是输不进去的,然而当你转到 ...

  6. js控制只能输入数字和小数点

    非常好用,代码示例如下: <input  onkeypress = "return event.keyCode>=48&&event.keyCode<=57 ...

  7. js控制只能输入数字和控制小数的位数

    <input class="form130" style="width: 80px;" maxlength="10" id=" ...

  8. js控制只能输入数字

    onkeyup=clearNoNum(this) function clearNoNum(obj) {    obj.value = obj.value.replace(/[^\d.]/g," ...

  9. WinForm中DataGridView验证单元格输入的是数字

    转载:http://www.cnblogs.com/ganqiyin/archive/2013/02/18/2915491.html 事件:DataGridView验证单元格输入的是数字,DataGr ...

随机推荐

  1. 正则匹配中文.PHP不兼容的问题

    不使用: ^[\u4e00-\u9fa5_a-zA-Z0-9_]+$ 有可能兼容有问题 if(!preg_match_all("/^[\\x7f-\\xff_a-zA-Z0-9]+$/&qu ...

  2. 23个MySQL常用查询语句

    23个MySQL常用查询语句 一查询数值型数据: SELECT * FROM tb_name WHERE sum > 100; 查询谓词:>,=,<,<>,!=,!> ...

  3. The world beyond batch: Streaming 101

    https://www.oreilly.com/ideas/the-world-beyond-batch-streaming-101 https://www.oreilly.com/ideas/the ...

  4. Grid组件 列头居中

    在grdMain组件中的 class中设置“ x-grid-title-center ”

  5. 3D模型修改

    xnalara模型修改---增添(技术交流贴2) 其实很早就想做这个教程(流程)但有一种叫拖延症的东东捆了我半年~~于是这个帖子诞生与此,,希望对某些骚年有用... 送TA礼物     回复 举报|1 ...

  6. 【转】C# HttpWebRequest\HttpWebResponse\WebClient发送请求解析json数据

    http://blog.csdn.net/kingcruel/article/details/44036871 版权声明:本文为博主原创文章,未经博主允许不得转载. ================= ...

  7. php数据访问:pdo用法、事物回滚功能和放sql注入功能

    PDO:    一.含义:        数据访问抽象层    二.作用        通过PDO能够访问其它的数据库    三. 用法:        1.造对象            ① $pdo ...

  8. Qt调用dll中的功能函数

    声明: 事先我已经自己动手写了一个简单的dll文件(myDLL.dll),C版接口的.并且用我前两篇有关DLL文章里面的方法,从dll中导出了导入库(.lib)文件,dll中有两个函数,原型如下:   ...

  9. 【Android测试】【随笔】与 “美丽说” 测试同事交流

    ◆版权声明:本文出自胖喵~的博客,转载必须注明出处. 转载请注明出处:http://www.cnblogs.com/by-dream/p/5405432.html 分享者简介 雪晗,3年+测试经验,现 ...

  10. php--列表展示(小实训一月考)

    效果图: