listview排序功能_listview用法

listview排序功能_listview用法ListViewSorterlistviewSort=newListViewSorter();this.lsv1.ListViewItemSorter=listviewSort;this.lsv1.Sort();    classListViewSorter:IComparer   {        privateintcolumnToSort;     

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

ListViewSorter listviewSort = new ListViewSorter();

this.lsv1.ListViewItemSorter = listviewSort;

this.lsv1.Sort();

 

    class ListViewSorter : IComparer
    {

        private int columnToSort;
        private System.Windows.Forms.SortOrder sortKind ;
        private int columnNumbers ;
        public ListViewSorter()
             {

                  columnToSort= 0;
                  sortKind = System.Windows.Forms.SortOrder.Ascending;
              }
        public int Compare(object x, object y)
        {

            int compareResult;
            ListViewItem listviewX, listviewY;
            listviewX = (ListViewItem)x;
            listviewY = (ListViewItem)y;
            //第一項目排序

            object[] x0Value = (object[])listviewX.SubItems[columnToSort].Tag;
            object[] y0Value = (object[])listviewY.SubItems[columnToSort].Tag;
            compareResult = string.CompareOrdinal(Convert.ToString(x0Value[2]), Convert.ToString(y0Value[2]));
            if (compareResult == 0)
            {

                 compareResult = string.CompareOrdinal(Convert.ToString(x0Value[0]), Convert.ToString(y0Value[0]));
                if (compareResult == 0)
                {

                    compareResult = string.CompareOrdinal(Convert.ToString(x0Value[3]), Convert.ToString(y0Value[3]));
                }
            }
            //第一項目相同时

            if (compareResult == 0 && (columnNumbers == 1 || columnNumbers == 2))
            {

                // 第二項目排序

                object[] x1Value = (object[])listviewX.SubItems[columnToSort+ 1].Tag;
                object[] y1Value = (object[])listviewY.SubItems[columnToSort+ 1].Tag;
                compareResult = string.CompareOrdinal(Convert.ToString(x1Value[2]), Convert.ToString(y1Value[2]));
                if (compareResult == 0)
                {

                   compareResult = string.CompareOrdinal(Convert.ToString(x1Value[0]), Convert.ToString(y1Value[0]));
                    if (compareResult == 0)
                    {

                   compareResult = string.CompareOrdinal(Convert.ToString(x1Value[3]), Convert.ToString(y1Value[3]));
                    }
                }
                //第二項目相同时

                if (compareResult == 0 && columnNumbers == 2)
                {

                    // 第三項目排序

                    object[] x2Value = (object[])listviewX.SubItems[columnToSort+ 2].Tag;
                    object[] y2Value = (object[])listviewY.SubItems[columnToSort+ 2].Tag;
                    compareResult = string.CompareOrdinal(Convert.ToString(x2Value[2]), Convert.ToString(y2Value[2]));
                    if (compareResult == 0)
                    {

                    compareResult = string.CompareOrdinal(Convert.ToString(x2Value[0]), Convert.ToString(y2Value[0]));
                        if (compareResult == 0)
                        {

                    compareResult = string.CompareOrdinal(Convert.ToString(x2Value[3]), Convert.ToString(y2Value[3]));
                        }
                    }
                }
            }
            if (sortKind == System.Windows.Forms.SortOrder.Ascending)
            {

                return compareResult;
            }
            else if (sortKind == System.Windows.Forms.SortOrder.Descending)
            {

                return (-compareResult);
            }
        }

        public int Columnnumbers
        {

            set
            {

                columnNumbers = value;
            }
        }
    }

 

ListView排序时,设置一下ListView的ListViewItemSorter属性就可以了,ListViewItemSorter属性的类型是IComparer类型,所以实现一下IComparer接口就行了,里面的排序方法可以根据自己的需要写.

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/186109.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 性能测试方案设计_性能测试方案模板

    性能测试方案设计_性能测试方案模板1、概述1.1目的本部分主要是针对即将进行性能测试的对象(接口、模块、进程或系统)进行概要的说明,让人明白该测试对象的主要功能与作用及相关业务背景。同时要指出进行性能测试的驱动原因。1.2名词解释此方案中涉及的业务和技术方面的专业名词。1.3参考资料此方案参考和依据的所有文档2、测试对象的拓扑结构本部分主要以图表加文字的方式,对待测试对象(接口、模块、系统)的拓扑结构进行描述,并标上必要的数…

    2022年10月23日
  • mac如何删除隐藏文件_如何显示系统隐藏文件

    mac如何删除隐藏文件_如何显示系统隐藏文件U盘和移动硬盘接入Mac时会产生.Trashes,.Spotlight-V100,.fseventsd等文件每插入Mac一次,都会检查是否有这些文件,如果没有,就会创建这些文件特别是有时候,在文件

  • 扩展Python模块系列(二)—-一个简单的例子

    扩展Python模块系列(二)—-一个简单的例子

  • 对java面向对象的三大特征的理解_Java面向对象的三大特征是什么?

    对java面向对象的三大特征的理解_Java面向对象的三大特征是什么?面向对象的三大核心特性简介面向对象开发模式更有利于人们开拓思维,在具体的开发过程中便于程序的划分,方便程序员分工合作,提高开发效率。该开发模式之所以使程序设计更加完善和强大,主要是因为面向对象具有继承、封装和多态3个核心特性。1、继承的概念继承是java面向对象编程技术的一块基石,因为它允许创建分等级层次的类。继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类…

  • idea20.3.1激活码-激活码分享2022.02.17[通俗易懂]

    (idea20.3.1激活码)2021最新分享一个能用的的激活码出来,希望能帮到需要激活的朋友。目前这个是能用的,但是用的人多了之后也会失效,会不定时更新的,大家持续关注此网站~IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.cn/100143.html…

  • macOS U盘制作启动系统

    macOS U盘制作启动系统

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号