none
DatagridView是否有类似Form的AutoValidate的属性? RRS feed

  • 问题

  • 我把Datagridview绑定到数据源上,在编辑特定一行的时候,如果在某个字段输入的值的类型与数据源对应字段的类型不一致的时候,Datagirdview会报错,并且把焦点锁定在当前单元格,直到修改正确以后,才可以离开当前单元格,但是我想设置为就算输入错误,也能离开当前单元格,并用图标标出错误,就像在Form里把AutoValidate设为EnableAllowFocusChange一样的效果,单我尝试了很久,找了很多资料,都不找不出解决的方法,请问各位大师,怎么能实践这个设定,或者Datagridview能不能设定再同一行变换单元格时,不自动提交数据到邦定源,等到最后同一行的数据验证成功,才手动提交?好像Datagridview也没有类似commit的方法,究竟怎么才能实现啊?
    2011年4月28日 16:25

全部回复

  • 自己顶一下,怎么没人回复啊,着急呢。
    2011年4月29日 14:22
  • 你好

    或者你可以參考以下URL

    http://msdn.microsoft.com/zh-cn/library/system.windows.forms.datagridview.commitedit.aspx

    Please correct me if my concept is wrong


    Chi
    2011年4月30日 6:22
    版主
  • 你好

    或者你可以參考以下URL

    http://msdn.microsoft.com/zh-cn/library/system.windows.forms.datagridview.commitedit.aspx

    Please correct me if my concept is wrong


    Chi

    谢谢,我以前也看过这个方法,但解决不了我的问题,我是想在DataGirdView单元格输入后,如果验证失败,输入的内容仍然可以留在原单元格,但焦点可以移到其他单元格。
    2011年5月1日 15:18
  • 你好,

    一般情况下,DataGridView绑定数据源,当把输入的数据保存到数据源时,类型不一致的话会报错。如果没有保存到数据源的话,输入的内容仍然留在原单元格,焦点可以移动到其他单元格。请问你是每输入一个单元格的值都要验证吗?能把你的代码共享一下吗?

    如果我理解有误,请及时回复。

    Best regards


    Liliane Teng [MSFT]
    MSDN Community Support | Feedback to us
    Get or Request Code Sample from Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    2011年5月4日 10:09
  • 谢谢你的回复。我只是在做试验,所以没有代码。我的想法是,如果窗体其他控件绑定了数据源时,可以把窗体的form.AutoValidate = Windows.Forms.AutoValidate.EnableAllowFocusChange,这时候输入的数据类型不一致的话也会报错,单可以用 errorprovider 来显示错误,而不弹出对话框,而且焦点也可以离开数据错误的控件,待回头再改正,最有可以用窗体的Me.ValidateChildren 再一次验证才提交数据到数据源,这样就不会多次打断输入。

    我想在Datagridview也实现这样的功能,当Datagridview绑定在数据源是,如果一个字段输入的数据跟数据源的类型不一致是,不用弹出对话框,只是在Cell的ErrorText提示,焦点也可以转到其他字段,单Datagridview好像没有这样的设置,如果当前字段输入的数据与绑定数据源类型不一致时,如果不修改正确,焦点根本没法离开当前字段,但是Datagridview不仅有CellValidating事件,还有RowValidating事件,觉得这个RowValidating事件就是用在种情况下的,但属性里没有可以设置类似EnableAllowFocusChange这样的功能,所以问一下,不知道我把我的问题表述清楚没有?

    2011年5月7日 14:46