当前位置:编程学习 > C#/ASP.NET >>

winform中DataGridView应该在什么事件里进行数据验证

winform中DataGridView应该在什么事件里进行单元格数据验证,如果单元格输入错误,返回原值。 --------------------编程问答-------------------- CellEndEdit
CellValidated --------------------编程问答-------------------- 如果某个单元格输入错误,返回原值。怎么做呢 --------------------编程问答-------------------- 1、首先你肯定要根据id去到该单元格的值 //根据id得到model
 if(CellValidate()==false) //单元格校验失败、校验方法需要自己去写
   {
     this...单元格的值 = model.. //失败后还是原来的值!
     return;
   } --------------------编程问答-------------------- CellValidating --------------------编程问答-------------------- 关键是要取回原值 --------------------编程问答-------------------- 创建个列保存和你变动一样列的值,现实的时候隐藏,完后对比就行了,原值也好取得 --------------------编程问答-------------------- 原值就是你隐藏列里面的值 --------------------编程问答-------------------- 不太懂 --------------------编程问答-------------------- 比如你有列A列B,你在加个列C,你想验证列B的值,就把列B和列C赋相同的值,显示的时候把列C隐藏,到时候你改变列B单元格里面的值,想知道原先的值是多少,就取列C的值不就行了 --------------------编程问答-------------------- 没有其他的办法吗? --------------------编程问答-------------------- 最简单,最直观,测试的时候你可以把列C给显示了
--------------------编程问答-------------------- 谢谢。 --------------------编程问答-------------------- 唉,高手们都不屑于回答,看我的:
 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;
            }
         }
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,