【问题标题】:VB.NET-Grid double click fires on single clickVB.NET-Grid 双击触发单击
【发布时间】:2011-03-07 23:34:31
【问题描述】:

好的,这是一个奇怪的 VB.NET 网格问题。我确信这很简单,但对我来说没有意义。

我有一个显示来自绑定源的数据的网格。我有一种处理 CellContentDoubleClick 的方法,它将获取单元格的值并使用它来进行新的查找。这将生成一个新的数据源(具有不同的列),然后我将其重新绑定到网格。

我的网格双击有效,但是当它使用新数据重新绘制时,单击会触发双击。无论是否有单击处理程序,都会发生这种情况。

有趣的是它(在我的例子中)是一个切换。如果我双击,在重绘上,单击会触发双击代码。当它再次重绘时,我需要双击。

双击代码会触发一个消息框 - 如果我告诉它不要继续,那么我必须双击让它再次触发。所以它不依赖于显示什么数据。

当它处于响应单击模式时,我可以在所有控件之间切换,然后单击网格中的任何单元格,它仍然会触发双击。

无论我尝试做什么(将焦点设置到其他控件、刷新网格等),似乎都没有重置网格,因此它始终如一地工作。

有什么想法吗?

【问题讨论】:

  • 有趣的更新 - 我创建了一个非常简单的演示网格,但无法让它重现问题。所以我正在调查以找出导致这种副作用的原因。将发布我发现的内容。

标签: vb.net datagrid double-click


【解决方案1】:

好的,我找到了答案。数据网格(至少在 VS.Net 2007 中)有一个名为“EditMode”的属性。如果将其设置为 EditOnEnter(不是默认设置),那么您将遇到此行为。如果您重置它(或将其更改为 EditOnKeystrokeOrF2),那么数据网格将按您预期的方式工作(没有像双击一样的单击。)

这是在使用线程、子类网格进行测试后得出的结果……我应该先查看属性设置……抱怨……

【讨论】:

    猜你喜欢
    • 2011-10-30
    • 2012-01-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-06
    • 1970-01-01
    • 2012-10-28
    • 1970-01-01
    相关资源
    最近更新 更多