在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. win10,软件, 发布者不受信任怎么办

    这个方法比较管用:右键单击windows左下角,弹出右击菜单选择‘命令提示符(管理员)(A)’,然后用DOS命令安装程序.就可以了 PS:win10的cmd可以直接复制粘贴了.

  2. 90、 Android UI模板设计

    第一步:自定义xml属性 新建一个android项目,在values文件夹中新建一个atts.xml的文件,在这个xml文件中声明我们一会在使用自定义控件时候需要指明的属性.atts.xml < ...

  3. AngularJs在单击提交后显示验证信息.

    <!DOCTYPE html> <html ng-app="app"> <head> <meta charset="utf-8& ...

  4. 快速同步GitHub代码库

    因伟大的墙的存在,github下载速度奇慢, 简单办法,在csdn code建一个账号,然后创建工程的时候选择导入模式, 填入github的项目git URL. 然后.. 从csdn的code下载就快 ...

  5. [SQL] 待整理3

    Create proc procedureName @orderId int ,@name varchar() ,@count int as begin Declare @id int declare ...

  6. POJ 2112 Optimal Milking 【网络流】【二分】【最短路】

    题意: k c m 分别代表挤奶机数量,牛数量,和挤奶机容量. 接下来(n=k+c)n*n的矩阵A,代表挤奶机或者牛的距离,如果对角线都为0,如果非对角线没有直接路相连也为0. 1 <= K & ...

  7. 使用Semaphore控制并发访问

    Semaphore,信号量. 用在多线程环境下对共享资源访问的一种协调机制. 当一个线程想要访问共享的资源时,这个线程需要获取Semaphore,如果Semaphore内部计数器的值大于0,Semap ...

  8. 数据库内置视图以及常见的DBMS开发包

    如果想了解oracle运行的一些数据信息,oracle有一些视图可以供我们查询,通过这些内置的视图我们可以了解数据库 运行的一些信息,比如数据库文件存在什么地方.有哪些表空间.表空间的利用率.orac ...

  9. ASP.NET MVC开发微信(四)

  10. Arch Linux 休眠到文件

    创建文件: # fallocate -l 4G /swapfile # chmod 600 /swapfile # mkswap /swapfile# swapon /swapfile 编辑/etc/ ...