代码之家  ›  专栏  ›  技术社区  ›  Kharlos Dominguez

DataGridView的CellValueChanged与CellValidating事件

  •  9
  • Kharlos Dominguez  · 技术社区  · 15 年前

    实现DataGridView的验证逻辑代码和条件格式代码的最佳位置是什么?

    在我读过的很多关于这个控件的书籍和文章中,似乎都认为要处理这个控件的适当事件是CellValidating。 好吧,这个名字不仅仅意味着这一点。

    例如,每当用户切换到另一行时,此事件都会触发。

    另一方面,CellValueChanged事件似乎仅在单元格值更改时触发,这意味着验证代码仅在值更改时运行,而不是每次用户更改单元格时运行。

    现在,既然这么多的书都使用cellvaligning事件,我想知道使用CellValueChanged是否有任何问题(例如在display中)?

    我知道在使用简单的验证和条件突出显示规则时,对性能的影响应该是无关紧要的,但是如果可以避免的话,我也不希望每次用户移动到另一个单元格时都运行无用的代码。

    谢谢,

    2 回复  |  直到 15 年前
        1
  •  4
  •   Tony Abrams    15 年前

    我使用的CellValueChanged当前在一个带有自定义验证的网格上,在显示或其他方面没有任何问题。

    我没有注意到有多少性能方面的问题(测试了100-5000行)。

    我认为最终这取决于你需要什么样的验证。就我而言,CellValueChanged已经做了我想要/需要的事情。

    编辑

    CellValidating事件最重要的一点是,如果输入的值未通过验证,则可以阻止用户离开单元格。我不想这么做。

        2
  •  -1
  •   Greg    8 年前

    e.cancel . 它将防止光标失去焦点

    推荐文章