2012-03-06 68 views
3

我在與樹形視圖 一個問題,我不能找到一種方法,找到每個孩子click事件節點哪裏可以找到treeview節點中的Click事件?

下面是一個示例圖像 enter image description here

這裏是我用盡爲止。

Private Sub TreeView1_AfterSelect(ByVal sender As System.Object, ByVal e As System.Windows.Forms.TreeViewEventArgs) Handles TreeView1.AfterSelect 
    If TreeView1.SelectedNode.Level = 0 Then 
     MsgBox("1") 
    ElseIf TreeView1.SelectedNode.Level = 1 Then 
     MsgBox("2") 
    ElseIf TreeView1.SelectedNode.Level = 2 Then 
     MsgBox("3") 
    ElseIf TreeView1.SelectedNode.Level = 3 Then 
     MsgBox("4") 
    ElseIf TreeView1.SelectedNode.Level = 4 Then 
     MsgBox("5") 
    End If 
End Sub 

的問題是在每個子節點的消息框總是說,這是2

+0

所以你說的水平總是1?我在使用TreeViews的時候創建了自己的函數......你可以創建一個函數來返回剛纔點擊的孩子的級別,但奇怪的是這個「基本」函數在你的情況下似乎不起作用 – squelos 2012-03-06 10:50:36

+0

這是完全正常的因爲Level屬性獲取TreeView中當前節點的深度。如果您選擇兩個父節點中的一個,MessageBox將顯示'1'。所以請進一步解釋你想要達到的目標以及目前無法實現的目標。 – Abbas 2012-03-06 10:53:59

+0

'如果(selectedNode.Parent!= null)'它的子節點 – Reniuz 2012-03-06 10:55:23

回答

5

您正在使用的事件是好的活動。如果要獲取新選定的節點,只需在事件處理程序中使用EventArgs對象(參數爲e)即可。下面的代碼是C#不是VB.Net,但它很簡單:

private void treeView1_AfterSelect(object sender, TreeViewEventArgs e) 
{ 
    // Use the e parameter to get the new selected node 
    MessageBox.Show(e.Node.Text); 
}