2012-03-22 98 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