【发布时间】:2014-07-23 07:29:42
【问题描述】:
我无法在 .net 树视图中捕捉双击事件。在点击事件中,我有一些耗时的逻辑(即更新 UI 部分的数据库调用)。所以由于这里的时间延迟,我在双击的情况下的第二次点击被忽略了,因此,树视图预期的正常行为(即双击展开)不起作用。 我的点击事件如下。
private void treeView_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)
{
if (e.Button == MouseButtons.Left)
{
//database call
}
}
当系统双击时间设置为最快时,数据库调用防止双击被触发。 我试图在其中实现一个线程,但我的应用程序阻止我在其中使用任何其他线程。因此,请提出一种方法,我可以在不使用线程的情况下触发双击事件(或让节点在双击时展开):(
提前谢谢你:)
【问题讨论】:
-
这是什么意思:
but my application prevents me from using any other thread within it? -
我不能使用其他线程。它给出了一个线程冲突异常,因为应用程序的其余部分是以这种方式创建的。如果可能的话,请建议一种没有线程的方法:(
-
您使用的是哪个版本的 .net?
-
.NET 版本 4
-
在双击的情况下,您还希望数据库代码也运行吗?一个简单的解决方案是在点击事件中启动一个计时器,当计时器到期时,它将运行数据库代码,您仍然可以按照其他人的建议在单独的线程中执行数据库代码。如果您不想在双击时运行数据库代码,您可以取消双击事件中的计时器。
标签: c# treeview double-click