回 帖 发 新 帖 刷新版面

主题:[讨论]世纪难题:如何验证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]

回复列表 (共6个回复)

沙发

希望有高手能解答我多年的困扰

板凳

我顶,顶到有人懂为止。这个问题可不止我一个人问过了,可惜都没有得到解答

3 楼

顶到有人懂为止

4 楼

我之前用SourceGrid的时候,它就是这种处理机制,输入不符合要求就永远是编辑状态

5 楼

谢谢楼上的回复,可是在datagridview就这么难么

6 楼

其实这个问题在本版已经不止一次被问到了,奈何始终没有得到解决。

对这个问题我是彻底没招了,希望高手能进来指点,不要让更多的人进来问同样的问题。

我来回复

您尚未登录,请登录后再回复。点此登录或注册