winform中DataGridView应该在什么事件里进行数据验证
winform中DataGridView应该在什么事件里进行单元格数据验证,如果单元格输入错误,返回原值。 --------------------编程问答-------------------- CellEndEditCellValidated --------------------编程问答-------------------- 如果某个单元格输入错误,返回原值。怎么做呢 --------------------编程问答-------------------- 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#