2012-03-22 58 views
2

“AfterSelected”事件是响应节点单击的最佳位置吗?确定树状图中的哪个节点已被点击

如何确定哪个节点被点击?下面的代码不起作用,B UT而是告诉我,“名称‘NodeBetter’在目前情况下不存在”

private void treeView1_AfterSelect(object sender, TreeViewEventArgs e) 
     { 
      if (e.Node.Name == NodeBetter) 
      { 

      } 
      // else NodeUh, NodeOze 
     } 
+0

我相信使用MouseUp事件并检查HitTest信息可能是您正在寻找的内容:http://msdn.microsoft.com/en-us/library/z6sb88bz%28v=vs.100%29.aspx – IAbstract 2012-03-22 17:03:27

回答

2

目前还不清楚是什么你所期望NodeBetter指,但TreeViewEventArgs.Node确实是什么你要。根据文档:

获取已检查,展开,折叠或选定的树节点。

也许你的意思是:

if (e.Node.Name == "NodeBetter") 

目前尚不清楚真的是否需要Selected事件。例如,如果节点扩展但未选中,是否需要调用处理程序?

+0

否,我不需要知道它何时被扩展,只有当实际选择了节点时。 – 2012-03-22 17:06:16

+0

我认为这是对的。我提出了一个使用HitTest方法的替代方案。任何一个都应该可以正常工作。 – IAbstract 2012-03-22 17:08:17

+0

@ClayShannon:好的,所以'e.Node'很好。 – 2012-03-22 17:09:36