簡體   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