2010-07-23 5 views

Répondre

6

Si vous avez besoin de faire défiler vers le noeud:

TreeNode.EnsureVisible(); 
+0

+1, réponse correcte. –

+0

Si vous savez exactement quel est le nœud que vous recherchez, le point de code ci-dessus défilera par programmation vers le nœud en question. – IbrarMumtaz

0

Sélectionnez et désélectionnez simplement l'élément le plus bas. Cela devrait faire l'affaire.

3

Essayez ceci:

treeView1.TopNode = treeView1.Nodes[500]; 

EDIT Peut-être plus suggestif :-)

private void Form1_Load(object sender, EventArgs e) 
    { 
     for (int i = 0; i < 100; i++) { 
      TreeNode node = treeView1.Nodes.Add(i.ToString()); 
      for (int j = 0; j < 10; j++) { 
       node.Nodes.Add(j.ToString()); 
      } 
     } 
    } 

    private void ScrollNode(TreeNode node) { 
     treeView1.TopNode = node; 
     treeView1.Refresh(); 
     System.Threading.Thread.Sleep(50); 
     if (node.IsExpanded) { 
      foreach (TreeNode subNode in node.Nodes) 
       ScrollNode(subNode); 
     } 
    } 

    private void button1_Click(object sender, EventArgs e) 
    { 
     treeView1.Focus(); 
     foreach (TreeNode node in treeView1.Nodes) { 
      ScrollNode(node); 
     } 
    } 
+0

Et s'il n'y a pas 500 nœuds?! – fletcher

+0

Que faire si vous n'avez pas 500 nœuds? ;-) –

+0

Florian, merci pour la réponse. Comment puis-je attacher le VScrollBar externe à TreeView? –