0

我是 C# 的初学者。在我的项目中,我在 TreeView 控件中填充了一个 xml 文件。如果 xml 文件很大,则TreeView控件显示带有滚动条的数据。除此之外,每当用户双击一个节点时,我都会在所选节点旁边显示一个面板,如下所示..

在此处输入图像描述

当我滚动 TreeView 控件时

在此处输入图像描述

我的问题是如何使panel附加到treeView控件,以便即使用户滚动TreeView控件,面板也应该与所选节点一起移动。

4

1 回答 1

2

好吧,因为 TreeView 没有 Scroll 事件,所以很难做到。无论如何它都不可靠,因为节点可以展开和折叠,从而改变节点的位置和可见性。备份计划是使用计时器。这很好用:

    private void timer1_Tick(object sender, EventArgs e) {
        var node = treeView1.SelectedNode;
        if (node == null || !node.IsVisible) panel1.Visible = false;
        else {
            panel1.Visible = true;
            var nodepos = treeView1.PointToScreen(node.Bounds.Location);
            var panelpos = panel1.Parent.PointToClient(nodepos);
            panel1.Top = panelpos.Y;
        }
    }
于 2012-10-26T17:29:03.303 回答