解决方案 »

  1.   

    试试DataError事件
    还可用e.Cancel = True
      

  2.   

    不要把读取到的datatable直接绑定
    自己new一个,clone一下结构,然后循环把列都改成string类型,再循环赋值
    这样就不会报错了
    然后你可以等保存到数据库的时候一起验证到底哪里有错误
    或者像之前一样,修改了某个单元格之后验证,都可以
      

  3.   


    你不会是这么整的吧
    我就是这么整的,因为datagridview有bug
    如果oracle字段设置成number(6,3),那么读出来的数据如果只有两位小数,会显示成0.010这种东东,而如果是1位则没有问题
    所以只能自己new个datatable,全部string型,再自己format
      

  4.   

    这个不是datagridview的bug
    应该是datatable的bug或者oracleclint的bug
    因为自己定义个datatable,往里放入2位小数的float型数据,tostring的时候是没有问题的
    而从数据库读出来2位小数,不管是直接绑定表格还是自己tostring,都会显示成3位小数
      

  5.   

    EndEdit
    CellValidating
    CellFormatting
    DataError
    一系列的事件可以用,干嘛拘泥于CellParsing不过,我觉得限制输入,最人性化
      

  6.   

    写 dategridview  error  事件 
    里面不用写任何东西
      

  7.   

    我试过了很多单元格事件,都会弹出DataErro事件,最后我没有用数据源绑定,建议你还是放弃数据源直接绑定的方式吧,要不就在SQL查询的时候将数据格式转换....
      

  8.   

    DataGridView 中对显示数值的列 设置数值类型就行了