Winform Treeview 排序及图标处理

 

一、排序

1. 继承 IComparer

2.  treeView1.TreeViewNodeSorter = this;

3. 实现IComparer

public int Compare(object x, object y)
        {
            TreeNode n1 = x as TreeNode;
            TreeNode n2 = y as TreeNode;
            if (n1 == null || n2 == null)
            {
                return 0;
            }

            IUser user1 = n1.Tag as IUser;
            IUser user2 = n2.Tag as IUser;
            if (user1 == null && user2 == null)
            {
                return n1.ToolTipText.CompareTo(n2.ToolTipText);
                //return n1.Text.CompareTo(n2.Text);
            }
            if (user1 != null && user2 != null)
            {
                return user1.Name.CompareTo(user2.Name);
            }

            return user1 == null ? 1 : -1;
        }

 

一、图标

1. 如果是一个自定义的control,要生成一个dll,就直接插入图片:

image

 

2. 如果想在后面方便换图标,就动态加载:

 //load images
imageList1.Images.Add(Image.FromFile("Resource\\organization.png"));
imageList1.Images.Add(Image.FromFile("Resource\\department.png"));
imageList1.Images.Add(Image.FromFile("Resource\\None64.ico"));
imageList1.Images.Add(Image.FromFile("Resource\\user.png"));
imageList1.Images.Add(Image.FromFile("Resource\\loading.gif"));
treeView1.ImageList = imageList1;


如果您觉得阅读本文对您有帮助,请点一下“推荐”按钮,您的“推荐”将是我最大的写作动力!欢迎各位转载,但必须在文章页面明显位置给出作者和原文连接,否则保留追究法律责任的权利。
posted @   疯吻IT  阅读(5987)  评论(0编辑  收藏  举报
编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
点击右上角即可分享
微信分享提示