TreeNode.EnsureVisible()//确保树节点可见,并在必要时展开树节点和滚动树视图控件
- 使用treeView1.ExpandAll()方法展开treeview控件中的所有节点后希望回到控件顶端
treeView1.ExpandAll();
treeView1.Nodes[0].EnsureVisible();
- 遍历treeview1回到指定TreeNode节点处
private void DrawTreeNode(string cellUrl)
{
foreach (TreeNode tn in this.treeView1.Nodes)
{
TreeNode tnRet = Utils.pubFindFileNode(tn, cellUrl);
if (tnRet != null)
{
tnRet.EnsureVisible();
treeView2.SelectedNode = tnRet;
break;
}
}
}
public static TreeNode pubFindFileNode(TreeNode tnParent, string fileUrl)
{
if (tnParent == null) return null;
if (tnParent.ToolTipText == fileUrl) return tnParent;//精确
TreeNode tnRet = null;
foreach (TreeNode tn in tnParent.Nodes)
{
tnRet = pubFindFileNode(tn, fileUrl);
if (tnRet != null) break;
}
return tnRet;
}
最后这个方法会同时影响到水平滚动条,使点击名称过长的节点时水平滚动条向右移动,所以这个方法建议只在展开所有节点后垂直滚动条重回顶端时使用。