For Each nd As WinForm.TreeNode In trv.AllNodes
Dim pd As WinForm.TreeNode = nd
Do
If pd.Name = key Then
If ids > "" Then
ids= ids & ","
End If
ids = ids & "'" & nd.name & "'" '此处当然要用 nd.name 你要添加的是当前节点, 而pd很有可能是父节点,因为如果IF条件不成立执行到ELSE就会为PD赋值为父节点
Exit Do
Else
pd = pd.ParentNode
If pd Is Nothing Then
Exit Do
End If
End If
Loop
Next
其实就是循环所有节点,判断这个节点是否等于KEY 如果不等于就看看他父亲是否等于KEY 依然不是,继续循环 也就是DO LOOP 找光他祖宗十八代看看有人 等于 KEY的没. 如果有 都加到IDS里面来 从而就得到当前节点的的所有子节点了.