Tôi khuyên bạn nên sử dụng lặp lại đệ quy.
private TreeNode FindNode(TreeView tvSelection, string matchText)
{
foreach (TreeNode node in tvSelection.Nodes)
{
if (node.Tag.ToString() == matchText)
{
return node;
}
else
{
TreeNode nodeChild = FindChildNode (node, matchText);
if (nodeChild != null) return nodeChild;
}
}
return (TreeNode)null;
}
Bạn có thể sử dụng logic này để xác định nhiều điều về nút và cấu trúc này cũng cho phép bạn mở rộng những gì bạn có thể làm với nút và tiêu chí bạn muốn tìm kiếm. Bạn có thể chỉnh sửa ví dụ của tôi để phù hợp với nhu cầu của riêng bạn. Vì vậy, với ví dụ này bạn có thể vượt qua trong E và mong đợi để có nút E trở lại sau đó chỉ đơn giản là nếu thuộc tính cha mẹ của nút được trả về sẽ là cha mẹ bạn sau.
tn treenode = FindNode(myTreeview, "E")
tn.parent
là giá trị bạn đang theo dõi.
Nguồn
2010-09-22 09:31:03
@ Ozkan: số 4 gì? Bạn có muốn tìm chiều sâu không? –
Cha/mẹ là 'D', phải không? –
@Albin, vâng, tôi muốn tìm độ sâu một nút. – ozkank