winform下dataGridView中限制某列只能输入数字

方法一

定义一个方法

private   void  TextBoxDec_KeyPress( object  sender, KeyPressEventArgs e)
{
    
if  (e.KeyChar  !=   8   &&   ! Char.IsDigit(e.KeyChar)  &&  e.KeyChar  !=   ' . ' )
    {
        e.Handled 
=   true ;
    }
}

 然后在dataGridView的EditingControlShowing事件中

private   void  dataGridView_EditingControlShowing( object  sender, DataGridViewEditingControlShowingEventArgs e)
{
    
if  ( this .dgvFenl.CurrentCell.ColumnIndex  ==  列索引)
    {
        e.Control.KeyPress 
+=   new  KeyPressEventHandler(TextBox_KeyPress);
    }
}

方法二

在dataGridView的CellValidating事件中

private   void  dgvTix_CellValidating( object  sender, DataGridViewCellValidatingEventArgs e)
{
    dgvTix.Rows[e.RowIndex].ErrorText 
=   "" ;

    
if  (e.ColumnIndex  ==   3 )
    {
        
int  newInteger  =   0 ;
        
if  ( ! int .TryParse(e.FormattedValue.ToString(),  out  newInteger)  ||  newInteger  <   0 )
        {
            e.Cancel 
=   true ;
            dgvTix.Rows[e.RowIndex].ErrorText 
=   " 题数格式错误,请重新输入。 " ;
            MessageBox.Show(
" 题数格式错误,请重新输入。 " );
            
return ;
        }
    }
    
else   if  (e.ColumnIndex  ==   4 )
    {
        
float  newFloat  =   0.00f ;
        
if  ( ! float .TryParse(e.FormattedValue.ToString(),  out  newFloat)  ||  newFloat  <   0.00 )
        {
            e.Cancel 
=   true ;
            dgvTix.Rows[e.RowIndex].ErrorText 
=   " 分数格式错误,请重新输入 " ;
            MessageBox.Show(
" 分数格式错误,请重新输入。 " );
            
return ;
        }
    }
}
  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值