我是 C# 的初学者。在我的项目中,我在 TreeView 控件中填充了一个 xml 文件。如果 xml 文件很大,则TreeView
控件显示带有滚动条的数据。除此之外,每当用户双击一个节点时,我都会在所选节点旁边显示一个面板,如下所示..
当我滚动 TreeView 控件时:
我的问题是如何使panel
附加到treeView
控件,以便即使用户滚动TreeView
控件,面板也应该与所选节点一起移动。
好吧,因为 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;
}
}