我是c#的初学者。在我的项目中,我在TreeView控件中填充了一个xml文件。如果xml文件很大,TreeView
控件将显示带滚动条的数据。除此之外,每当用户双击一个节点时,我在所选节点旁边显示一个类似这样的面板..
滚动TreeView控件时:
我的问题是如何将panel
附加到treeView
控件,以便在用户滚动TreeView
控件时,面板也应该与所选节点一起移动。
答案 0 :(得分:2)
好吧,很难做到,因为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;
}
}