Tôi có một điều khiển TreeView trong ứng dụng WinForms .NET của mình có nhiều cấp độ Childnode có Childnode với nhiều Childnode hơn, không có chiều sâu xác định. Khi người dùng chọn bất kỳ nút cha nào (không nhất thiết phải ở cấp cơ sở), làm thế nào tôi có thể nhận được danh sách tất cả các nút beneith mà nút cha?Cách lấy danh sách tất cả các nút con trong TreeView trong .NET
Ví dụ, tôi đang bắt đầu với điều này:
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
Vấn đề là độ sâu vòng lặp này được định nghĩa và tôi chỉ bị nút chôn xuống ba cấp độ. Điều gì sẽ xảy ra nếu lần tiếp theo người dùng chọn một nút cha, có bảy cấp độ?
Chỉ cần chỉnh sửa nhanh: Dòng 3 nên gọi GetAllChildren –
@ [Matt Hanson]: sửa dòng 3 theo nhận xét –
Tôi khuyên bạn không nên gọi 'GetChildren' này vì nó không chỉ nhận trẻ em (tức là các nút trực tiếp hiện tại một) nó cũng được cháu, cháu tuyệt vời, và như vậy. Để rõ ràng, tôi tìm thấy nó tốt hơn để có 'GetDescendants' cho tất cả các hậu duệ và' GetChildren' cho chỉ là cấp độ ngay lập tức dưới đây. – Keith