datagridview 在输入时进行判断
如:只能输入数据字,字母输入不进去,怎么做

解决方案 »

  1.   

    在datagridview的cell_validate中用正则表达式来进行判断:
    System.Text.RegularExpressions.Regex reg = new System.Text.RegularExpressions.Regex(@"^[-]?\d+[.]?\d*$");
    if (!reg.IsMatch(当前cell的值))
    {
        MessageBox.Show("必须输入数字!");
    }
      

  2.   

    限制输入,也就是输入字母时不让输入,像TEXTBOX似的
    能做到吗
      

  3.   

    不能做到,除非是你通过这个正则表达式,在datagridview.CellValueChanged的时候,判断刚刚用户输入的,如果不满足上面的正则,那么把其删除。
      

  4.   

    CellValueChanged也是在用户输入完才触发的
      

  5.   

    估计KeyPress不行,因为DataGridView 的单元格并不是一个个的Control啊,所以你可以不要用CellValidate,可以考虑在CellValueChanged中来做,这样也应该可以满足些要求。另外建议:
    重载DataGridView ,然后在重载中来实现,试看吧,具体我也没有做这个,我一般就是在CellValueChanged中做判断。
      

  6.   

    能输入数据字,字母输入不进去,怎么做-------datagridview 是服务器控件,只能输入后并触发服务器事件,到服务端检测是否数字,如果“字母输入不进去”,就只有用JS做。
      

  7.   

    给你个建议,我没试过,不知道是否可行。
    1、用一个TEXTEDIT
    2、在GRID处于编辑状态时才可见(GRID非编辑状态时它不可见)并根据GRID的当前单元格对其定位。
    3、在TEXTEDIT中利用输入检测
    4、输入完成时将值付给GRID的当前单元,并使TEXTEDIT不可见。嘿嘿嘿 
    这就是欺骗,对用户来说效果是一样的。
      

  8.   

    在服务端做显然是不好的用户体验
    用js做,先写一个函数然后在GridView里把js绑定一下
      

  9.   


    都是可以做到的!   通过 key 做判断就好我是小菜鸟!   说的不好清见谅,   希望能够帮到你!