如何以编程方式滚动TreeView控件?

时间:2010-07-23 12:03:23

标签: c# .net treeview scroll

请建议如何以编程方式滚动.NET TreeView控件。

它没有实现任何滚动的公共方法。

3 个答案:

答案 0 :(得分:6)

如果您需要滚动到节点:

TreeNode.EnsureVisible();

答案 1 :(得分:3)

试试这个:

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);
        }
    }

答案 2 :(得分:0)

只需选择并取消选择最低的项目即可。这应该可以解决问题。