我的WinForms .NET應用程序中有一個TreeView控件,該控件具有多個級別的childnodes,其中包含具有更多childnodes且沒有定義深度的childnodes。當用戶選擇任何父節點(不一定在根級別)時,如何獲得與父節點相關的所有節點的列表?如何在.NET中的TreeView中獲取所有子節點的列表
例如,我開始了與此:
Dim nodes As List(Of String)
For Each childNodeLevel1 As TreeNode In parentNode.Nodes
For Each childNodeLevel2 As TreeNode In childNodeLevel1.Nodes
For Each childNodeLevel3 As TreeNode In childNodeLevel2.Nodes
nodes.Add(childNodeLevel3.Text)
Next
Next
Next
的問題是,這個循環深度定義,我纔剛剛節點安葬下來三個層次。如果下次用戶選擇父節點時,會有七個級別?
只是一個快速編輯:第3行應該調用GetAllChildren – 2008-10-07 18:49:46
@ [Matt Hanson]:更正的第3行按照註釋 – 2008-10-08 02:36:17
我建議不要調用這個`GetChildren`,因爲它不只是讓孩子(即節點直接在當前一)它也得到了孫子孫輩,等等。爲了清楚起見,我發現爲所有後代和`GetChildren`提供`GetDescendants`更好。 – Keith 2010-05-05 07:33:44