我是靠谱客的博主 紧张老虎,最近开发中收集的这篇文章主要介绍C# Winform TreeView 控制滚动条位置不变的其他解决方法,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

  这几天碰到一个问题,写winform的时候,给TreeView加了checkbox,但是每次操作某个checkbox的时候,滚动条总会跑到最下面。
  想了很多办法,终于找到了一个TreeView的属性--TopNode,这个属性的意思是当前treeview的显示在最上面的node。
还有另外一个方法--EnsureVisible(),用于控制某个node显示在最上面。于是思路有了:每次操作treeview之前先记录TopNode,操作完之后继续将这个topnode置顶。但是还有一个弊端:每次显示的时候总会刷一下。下面是代码:
 
  
private TreeNode _currentTopNode;
private void treeView1_AfterCheck( object sender, TreeViewEventArgs e)
{
   _currentTopNode= this .treeView1.TopNode;
   InitTreeview();
}
 
private void InitTreeview()
{
   if (_currentTopNode != null )
   {
      this.treeView1.Nodes[0].Nodes.Cast<TreeNode>().
      Where(o => o.Text == _currentTopNode.Text).First().EnsureVisible();
      //_currentTopNode.EnsureVisible();不起作用,只有上面这种做法才有效,具体原因我也不清楚。
   }
   else
   {
      this. treeView1.Nodes[0].EnsureVisible();   
   }
}

转载于:https://blog.51cto.com/2475339/1181265

最后

以上就是紧张老虎为你收集整理的C# Winform TreeView 控制滚动条位置不变的其他解决方法的全部内容,希望文章能够帮你解决C# Winform TreeView 控制滚动条位置不变的其他解决方法所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(40)

评论列表共有 0 条评论

立即
投稿
返回
顶部