繁体   English   中英

将面板附加到TreeView控件

[英]attach a panel to TreeView control

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

在此输入图像描述

当我滚动TreeView控件时

在此输入图像描述

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM