主要是应用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 用QueryList抓取网页内容

    http://www.cnblogs.com/wb145230/p/4716403.html 之前抓取网页数据都是用Java Jsoup,前几天听说用PHP抓更方便,今天就简单研究了一下,主要是用Qu ...

  2. lvs简单配置

    负载均衡服务器将会用到两块网卡,eth0为公网地址(此处将局域网ip作为公网地址),IP地址为192.168.1.104,eth0:1,IP地址为192.168.2.1在负载均衡器上添加一个ip别名, ...

  3. delimiter

    http://www.mysqltutorial.org/getting-started-with-mysql-stored-procedures.aspx The first command is  ...

  4. access violation at address General protection fault

    https://en.wikipedia.org/wiki/General_protection_fault In memory errors, the faulting program access ...

  5. 九 spring和mybatis整合

    1       spring和mybatis整合 1.1     整合思路 需要spring通过单例方式管理SqlSessionFactory. spring和mybatis整合生成代理对象,使用Sq ...

  6. java Channel filp compact

    import java.nio.ByteBuffer; //Listing 7-1. Copying Bytes from an Input Channel to an Output Channel ...

  7. gogs安装

    1.下载gogs文件,如果图方便可以选择编译好的文件网址https://gogs.io/docs/installation/install_from_binary 2.gogs web运行gogs 3 ...

  8. php源码安装

    要用swoole,首先需要有PHP环境.由于swoole的某些特性,最好是能够从源码编译安装PHP,这样在使用过程中可以避免很多不必要的错误.PHP下载地址:http://php.net/在这里挑选你 ...

  9. AOP 底层技术比较

    表 1. AOP 底层技术比较 AOP 底层技术 功能 性能 面向接口编程 编程难度 直接改写 class 文件 完全控制类 无明显性能代价 不要求 高,要求对 class 文件结构和 Java 字节 ...

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

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