2011-09-15 80 views
5

我的所有TreeView節點都具有其節點深度的唯一ID。按值查找TreeView節點

我想在TreeView節點上設置Checked=True,它與某個值匹配。

目前我做了以下內容:

Dim value As Integer = 57 

For Each n As TreeNode In tvForces.Nodes 
    If n.Value = value Then n.Checked = True 
Next 

有沒有發現,我想將其設置爲Checked=True而不是通過每個節點循環節點的更好的辦法?

我在尋找類似:

Dim value As Integer = 57 

n.FindNodesByValue(value)(0).Checked = True 

有沒有這樣的事情,我可以使用?

+0

記住tvForces.Nodes只得到第一級(根)節點。如果你想要所有的節點,你需要遍歷樹。 –

回答

5

僞代碼(c#)說明使用LINQ Where()List.ForEach(): +

nodes.Where(node => node.Value == "5") 
    .ToList() 
    .ForEach((node => node.Checked = true)); 

參見MSDN按照以上對VB.NET語法的兩種方法的鏈接的想法。

-1
for (int j = 0; j < TreeView1.CheckedNodes.Count; j++) 
    {  
     Response.Write(TreeView1.CheckedNodes[j].Value)); 
    } 
+2

請添加一些解釋。 –

0
   foreach (TreeNode node in TreeView1.Nodes) 
       { 
        if (node.Value == "8") 
        { 
         node.Checked = true; 
        } 
        foreach (TreeNode item1 in node.ChildNodes) 
        { 
         if (item1.Value == "8") 
         { 
          item1.Checked = true; 
         } 
        } 
       }    
+0

請有點解釋你的代碼,以幫助OP – Gogo