ListView 排序问题[通俗易懂]

ListView 排序问题[通俗易懂] 在DataGrid 中有自带的排序,但是在ListeView中却没有这一项,下面就给出我平时用的ListView的排序使用方法,给志同道合的朋友们参考参考:在ColumnClick事件下添加:其中要注意:intsortColumn=-1;其中sortColumn用来记录上次排序的列的索引privatevoidlistView1_ColumnClick(objectse

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

Jetbrains全系列IDE稳定放心使用

 


DataGrid 
中有自带的排序,但是在
ListeView
中却没有这一项,下面就给出我平时用的
ListView
的排序使用方法,给志同道合的朋友们参考参考:

ColumnClick
事件下添加:
其中要注意:
int sortColumn=-1;
其中
sortColumn
用来记录上次排序的列的索引
private
void listView1_ColumnClick(object sender, System.Windows.Forms.ColumnClickEventArgs e)
         {
              if(this.listView1.SelectedItems.Count!=0)
                   this.listView1.SelectedItems.Clear();
              if (e.Column != sortColumn)  //first use
              {
                   // Set the sort column to the new column.
                   sortColumn = e.Column;
                   // Set the sort order to ascending by default.
                   listView1.Sorting = SortOrder.Ascending;
              }
              else //second or more use
              {
                   // Determine what the last sort order was and change it.
                   if (listView1.Sorting == SortOrder.Ascending)
                       listView1.Sorting = SortOrder.Descending;
                   else
                       listView1.Sorting = SortOrder.Ascending;
              }
 
              // Call the sort method to manually sort.
              listView1.Sort();
              // Set the ListViewItemSorter property to a new ListViewItemComparer
              // object.
              this.listView1.ListViewItemSorter = new ListViewItemComparer(e.Column,
                   listView1.Sorting);// ListViewItemCompare
r
要用到下面的类
         }
一个新的类
class
ListViewItemComparer : IComparer
         {
              private int col;
              private SortOrder order;
              public ListViewItemComparer()
              {
                   col=0;
                   order = SortOrder.Ascending;
              }
              public ListViewItemComparer(int column, SortOrder order)
              {
                   col=column;
                   this.order = order;
              }
              public int Compare(object x, object y)
              {
                   int returnVal= -1;
                   returnVal = String.Compare(((ListViewItem)x).SubItems[col].Text,
                       ((ListViewItem)y).SubItems[col].Text);
                   // Determine whether the sort order is descending.
                   if(order == SortOrder.Descending)
                       // Invert the value returned by String.Compare.
                       returnVal *= -1 ;
                   return returnVal;
              }
         }
 
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/186396.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • C语言socket[通俗易懂]

    C语言socket[通俗易懂]2.相关api介绍asocket函数:对创建套接字(的方法进行说明。#includesys/socket.hintsocket(intaf、inttype、intprotocol);af:地址的说明。仅支持AF_INET格式,即ARPA互联网地址格式。类型:指定套接字类型。新套接字的类型描述类型,如TCP(sock_stream)或UDP(sock_dgram)。常用的socket类型有SOCK_STREAM、SOCK_DGRAM、SOCK_RAW、SOCK_PACK

    2022年7月13日
    13
  • TCP报文格式详解

    TCP报文是TCP层传输的数据单元,也叫报文段。端口号:用来标识同一台计算机的不同的应用进程。源端口:源端口和IP地址的作用是标识报文的返回地址。目的端口:端口指明接收方计算机上的应用程序接口。TCP报头中的源端口号和目的端口号同IP数据报中的源IP与目的IP唯一确定一条TCP连接。序号和确认号:是TCP可靠传输的关键部分。序号是本报文段发送的数据组的第一个字节的序号。

    2022年4月7日
    48
  • MySQL 重置 root 密码以及修改密码时报错password字段不存在

    MySQL 重置 root 密码以及修改密码时报错password字段不存在

    2022年2月18日
    54
  • efishell无法开机shell_电脑开机后出现efi shell提示进不了系统?解决方法

    efishell无法开机shell_电脑开机后出现efi shell提示进不了系统?解决方法最近有很多网友问我,为什么我的电脑开机后出现efishell提示进不了系统,开机出现efishell提示时,一般是由于第一启动项设置的是efishell启动的,有的网友告诉我,我第一启动项明明设置的是硬盘启动,当然还有一种情况就是前面的启动项都无法加载,然后按启动顺序启动,然后就启动到efishell了,出现这种情况一般就是系统引导破坏或是找不到引导项了。那么怎么找到原并解决这个问题呢,下…

    2022年7月24日
    107
  • 用thinkphp开启伪静态,用wamp开启很快搞定;但是用phpstudy总是开启失败,为什么?…

    用thinkphp开启伪静态,用wamp开启很快搞定;但是用phpstudy总是开启失败,为什么?…

    2021年10月15日
    65
  • 浦发银行 信息科技岗 大数据方向 面经

    浦发银行 信息科技岗 大数据方向 面经浦发银行总行信息科技部(大数据方向)面试浦发银行总行信息科技部(大数据方向)面试8.6面试大家的面经浦发银行总行(上海)大数据岗8月6号面经一、综合面二、机试三、专业面试浦发面经即兴演讲上机测试结构化面试浦发银行大数据创新岗上海打卡第一部分综合面试第二部分专业面试第三部分上机考试(只有开发和测试岗需要,别的岗可选)浦发总行信息岗校招面经(上海…

    2022年5月5日
    163

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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