winform中DataGridView应该在什么事件里进行单元格数据验证,如果单元格输入错误,返回原值。

解决方案 »

  1.   

    1、首先你肯定要根据id去到该单元格的值 //根据id得到model
     if(CellValidate()==false) //单元格校验失败、校验方法需要自己去写
       {
         this...单元格的值 = model.. //失败后还是原来的值!
         return;
       }
      

  2.   

    比如你有列A列B,你在加个列C,你想验证列B的值,就把列B和列C赋相同的值,显示的时候把列C隐藏,到时候你改变列B单元格里面的值,想知道原先的值是多少,就取列C的值不就行了
      

  3.   

    唉,高手们都不屑于回答,看我的:
     private object oldvalue;
            private void dgv2_CellBeginEdit(object sender, DataGridViewCellCancelEventArgs e)
            {
                oldvalue = dgv2.CurrentCell.Value;
            } private void dgv2_CellEndEdit(object sender, DataGridViewCellEventArgs e)
            {
                int num = 0, max = 100;//max用于演示
                int.TryParse(dgv2["数量", e.RowIndex].Value.ToString(), out num);
                if (num > max)
                {
                    //e.Cancel = true;
                    MessageBox.Show("输入数量不能大于100。");
                    dgv2.CurrentCell.Value = oldvalue;
                }
             }