How to programmatically scroll a TreeView control?

Please advise how to programmatically scroll the TreeView control.

It does not use any public methods for scrolling.

+3
source share
3 answers

If you need to go to node:

TreeNode.EnsureVisible();
+6
source

Try the following:

treeView1.TopNode = treeView1.Nodes[500];

EDIT Maybe more suggestive :-)

    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);
        }
    }
+3
source

. .

0

Source: https://habr.com/ru/post/1756179/


All Articles