C#中DataGridView限制输入

转自http://www.cnblogs.com/UouHt/archive/2009/02/16/1391687.html

DataGridView是.net2.0的一个新增数据控件,功能比DataGrid增强了很多,但是并没有CellKeyPress事件来限制文本列的输入。

我通过EditingControlShowing事件解决这个问题.

private void InputInteger(object sender, KeyPressEventArgs e)
        { //限制数量只能输入整数
            if ((e.KeyChar < 48 || e.KeyChar > 57) && e.KeyChar != 8 && e.KeyChar != 13 && e.KeyChar != 22 && e.KeyChar != 3 && e.KeyChar != 24 && e.KeyChar != 26)
            {
                e.Handled = true;
            }
            else
            {
                //如果第一位输入0,则不接收
                if (e.KeyChar == 48 && (((TextBox)sender).SelectionStart == 0))
                    e.Handled = true;
                //如果是回车键,则按tab序进行跳转
                if (e.KeyChar == 13)
                {
                    SendKeys.Send("{TAB}");
                    e.Handled = true;
                }
            }
        }

 

#region 编辑某列的值事件
private void dgv_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
        {
            if (this.dgv.CurrentCell.ColumnIndex==5)//如果是第五列,只允许输入整数
            {
                e.Control.KeyPress += new KeyPressEventHandler(InputInteger);
            }
        }

#endregion

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值