在datagridview的EditingControlShowing事件里面添加代码:

if (this.dgv_pch.Columns[dgv_pch.CurrentCell.ColumnIndex].HeaderText == "批内序号")//判断是哪列的单元格需要限制
{
(dgv_pch.Columns[dgv_pch.CurrentCell.ColumnIndex] as DataGridViewTextBoxColumn).MaxInputLength = 4;//限制只能输入内容长度为4
e.Control.KeyPress += new KeyPressEventHandler(EditingControl_KeyPress);//限制只能输入数字
//e.Control.KeyPress -= new KeyPressEventHandler(EditingControl_KeyPress);
}

//限制只能输入数字和.和backspace
private void EditingControl_KeyPress(object sender, KeyPressEventArgs e)
{
int keyValue = (int)e.KeyChar;
if ((keyValue >= 48 && keyValue <= 57) || keyValue == 8 || keyValue == 46)
{
if (sender != null && sender is TextBox && keyValue == 46)
{
if (((TextBox)sender).Text.IndexOf(".") >= 0)
e.Handled = true;
else
e.Handled = false;
}
else
e.Handled = false;
}
else
e.Handled = true;
}

//只能输入数字和backspace

private void EditingControl_KeyPress(object sender, KeyPressEventArgs e)
{
if (Convert.ToInt32(e.KeyChar) == 8)
{
e.Handled = false;
}
else
{
Regex numRegex = new Regex(@"^(-?[0-9])$"); // 匹配正则表达式
Match result = numRegex.Match(Convert.ToString(e.KeyChar));
if (result.Success) // 输入的不是数字
{
e.Handled = false; // textBox内容不变
}
else
{
e.Handled = true; // 将现在textBox的值保存下来
}
}
}

//右键单击datagridview的单元格,单元格焦点跟着改变

//在datagridview的CellMouseDown事件里面写

/// <summary>
/// 右键单击datagridview的单元格焦点跟着改变
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void dataGridView_book_CellMouseDown(object sender, DataGridViewCellMouseEventArgs e)
{
if (e.RowIndex >= 0)
{
if (e.Button == System.Windows.Forms.MouseButtons.Right)
{
dataGridView_book.ClearSelection();
dataGridView_book.Rows[e.RowIndex].Cells[e.ColumnIndex].Selected = true;

}
}
}

winform的datagridview单元格输入限制和右键单击datagridview单元格焦点跟着改变的更多相关文章

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

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

  2. C# 文本输入限制类型,datagridview单元格输入验证

    1.只能输入double类型 private void textBoxX6_KeyPress(object sender, KeyPressEventArgs e) { { //数字0~9所对应的ke ...

  3. Excel01-不同的单元格输入同一数据

    第一步:按住Ctrl键,选择不同的单元格 第二步:选择完最后一个单元格后,输入需要的数据“YES”,按Ctrl+Enter键结束. 提示:按Ctrl+; 输入当前日期,再按ctrl+Enter实现全部 ...

  4. (很难啊)如何实时获取DBGrid 中当前单元格输入的内容? [问题点数:100分,结帖人yifawu100]

    如何获取DBGrid 中当前单元格输入的内容? 还没输入完成,我想实时获取 Cell中的内容,以便作其他处理,用什么事件呢? 所以Field的Onchange事件是没用的. DBGrid1.Selec ...

  5. DataGridView使用技巧一:获取或设置当前单元格的内容

    当前单元格指的是DataGridView焦点所在的单元格,它可以通过DataGridView对象的CurrentCell属性取得.如果当前单元格不存在的时候,返回null. 取得当前单元格的内容: o ...

  6. 如何实时获取DBGrid 中当前单元格输入的内容?

    如何获取DBGrid 中当前单元格输入的内容? 还没输入完成,我想实时获取 Cell中的内容,以便作其他处理, 用什么事件呢? 所以Field的Onchange事件是没用的. 这个问题简单啊,每输入1 ...

  7. 用鼠标右键选择DataGridView单元格或行

    在datagirdview_cellmousedown事件中先将CurrentCell(或CurrentRow)的Selected属性设为false,然后将鼠标右键点击的单元格(或行)设为Curren ...

  8. C# DataGridView在单元格提示里(ToolTip)显示完整的单元格内容

    当单元格内容太多时,则会忽略后面的内容 解决方案: 添加Dgv鼠标移到单元格事件时,设置当前单元格的ToolTipText属性内容为当前单元格内容 void From_Load(object send ...

  9. 详解如何利用FarPoint Spread表格控件来构造Winform的Excel表格界面输入

    我们先来简单了解一下WinForm和FarPoint,WinForm是·Net开发平台中对Windows Form的一种称谓.而FarPoint是一款模拟EXCEL的控件.它可以根据用户的要求实现很大 ...

随机推荐

  1. POJ-3041

    思路:将n个行看作n个点{x_i}(i=1, ..., n),n个列也看作n个点{y_j}(j=1, ..., n).每个障碍看作一条无向边(x_i, y_j).则该问题能够归结为求二分图最小点覆盖数 ...

  2. Android自动化测试之Monkeyrunner学习笔记(一)

    Android自动化测试之Monkeyrunner学习笔记(一) 因项目需要,开始研究Android自动化测试方法,对其中的一些工具.方法和框架做了一些简单的整理,其中包括Monkey.Monkeyr ...

  3. Zabbix通过percona监控MySQL

    因为Zabbix自带的MySQL监控没有提供可以直接使用的Key,所以一般不采用,业界的同学们都使用Percona Monitoring Plugins 监控 MySQL的方式 Percona介绍 P ...

  4. gdb使用心得

    启用调试gdb gdb 路径到prog_1dray 然后就直接进去gdb了 进去后输入r *.par 参数文件就行了 暂时学到这,用到这!日后再学习更新

  5. VPS技术介绍以及分析

    VPS的全称为Virtual Private Server,叫做虚拟专用服务器(Godaddy称之为Virtual Dedicated Server,VDS).就是利用各种虚拟化手段把单台物理服务器虚 ...

  6. Print2flash在.NET(C#)64位中的使用,即文档在线预览

    转:http://www.cnblogs.com/flowwind/p/3411106.html Print2flash在.NET(C#)中的使用,即文档在线预览   office文档(word,ex ...

  7. ubuntu下的翻译软件goldendict

    转自ubuntu下的翻译软件 看着一些API虽然能看懂一个大概,但总想知道每个单词的意思.问题是英语水平有限,所以只能来找一些翻译软件,像windows下来用的有道估计是不行了(也没去试到定行不行), ...

  8. SpringBoot(六):springboot热部署

    在j2ee项目开发中,热部署插件是JRebel.JRebel的使用为开发人员带来了极大的帮助,且挺高了开发便捷.而在SpringBoot开发生态环境中,SpringBoot热部署常用插件是:sprin ...

  9. OSS上传文件到阿里云

    最近做项目,需要上传文件,因为上传到项目路径下,感觉有时候也挺不方便的,就试了一下上传文件到阿里云oss上去了, oss的使用网上有很多介绍,都是去配置一下需要的数据,然后直接调用他的api就可以了. ...

  10. glide:4.7.1 与 26.1.0冲突

    implementation 'com.android.support:support-v4:26.1.0'implementation 'com.github.bumptech.glide:glid ...