主题:[讨论]世纪难题:如何验证datagridview单元格内容
[size=3] datagridview单元格的内容验证问题,该问题困扰小弟已久,实在没有办法,只好到此求教高人:
环境:C# winform,某窗体,某datagridview控件,某单元格A。
例如:我想让 A 的内容限制在0-100,为了防止用户输入此范围以外的内容,例如 101,就想在用户输入结束后(即单元格结束编辑状体时)做判断验证,如果在范围外,就提示错误,使该单元格回到编辑状态。
简单的说,就是只要用户没有输入正确格式,就让单元格永远也不结束编辑状态,直到输入正确为止。该怎么做?
--------------------------------------------------
我的想法是这样的,在A 的endedit()事件编写验证程序,如果内容格式不对,就提示错误,然后就使当前单元格回到A,并使单元格处于编辑状态,用datagridview.currentcell=A; A.BeginEdit(true);
这个过程看似合理,可惜是有问题的,首先,我们在A中输入完毕时,一般会用鼠标选择其他单元格(例如B),来结束A的编辑状态,这个时候会提示“A输入的内容格式错误”,但是之后A并没有变回编辑状态,而且当前单元格也没有回到A,而是仍然在B。此时,A中的内容是错误的输入。
请问我该如何使具有不正确输入内容的A 永远处于编辑状态,直到输入格式正确? [/size]
环境:C# winform,某窗体,某datagridview控件,某单元格A。
例如:我想让 A 的内容限制在0-100,为了防止用户输入此范围以外的内容,例如 101,就想在用户输入结束后(即单元格结束编辑状体时)做判断验证,如果在范围外,就提示错误,使该单元格回到编辑状态。
简单的说,就是只要用户没有输入正确格式,就让单元格永远也不结束编辑状态,直到输入正确为止。该怎么做?
--------------------------------------------------
我的想法是这样的,在A 的endedit()事件编写验证程序,如果内容格式不对,就提示错误,然后就使当前单元格回到A,并使单元格处于编辑状态,用datagridview.currentcell=A; A.BeginEdit(true);
这个过程看似合理,可惜是有问题的,首先,我们在A中输入完毕时,一般会用鼠标选择其他单元格(例如B),来结束A的编辑状态,这个时候会提示“A输入的内容格式错误”,但是之后A并没有变回编辑状态,而且当前单元格也没有回到A,而是仍然在B。此时,A中的内容是错误的输入。
请问我该如何使具有不正确输入内容的A 永远处于编辑状态,直到输入格式正确? [/size]