Как программно прокрутить элемент управления TreeView? - PullRequest
3 голосов
/ 23 июля 2010

Посоветуйте, пожалуйста, как программно прокрутить элемент управления .NET TreeView.

В нем не реализованы публичные методы прокрутки.

Ответы [ 3 ]

6 голосов
/ 23 июля 2010

Если вам нужно прокрутить до узла:

TreeNode.EnsureVisible();
3 голосов
/ 23 июля 2010

Попробуйте это:

treeView1.TopNode = treeView1.Nodes[500];

РЕДАКТИРОВАТЬ Может быть, более наводящий на размышления: -)

    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 голосов
/ 23 июля 2010

Просто выберите и отмените выбор самого низкого элемента.Это должно сработать.

...