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

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

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

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

(0)


相关推荐

发表回复

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

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