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)
上一篇 2022年10月3日 下午2:16
下一篇 2022年10月3日 下午2:36


相关推荐

  • queryinterface的用法[通俗易懂]

    queryinterface的用法[通俗易懂]客户可以根据QueryInterface函数来查询某个组件是否支持某个特定的接口,若支持,则QueryInterface则返回一个指向特定接口的指针,若不支持,则返回一个错误代码,它的函数形是这样的:     HRESULT__stdcallQueryInterface(constIID&iid,void**ppv);昨天已经设计了一个极其简单的QueryInte

    2022年6月26日
    49
  • linux中mysql忘记密码[通俗易懂]

    linux中mysql忘记密码[通俗易懂]第一种解决方案解决方法:1、利用“servicemysqlstop”命令关闭mysql服务;2、修改mysql的配置文件“my.conf”;3、用“servicemysqldstart”命令重启数据库;4、用“usemysql”语句修改密码。本教程操作环境:linux7.3系统、mysql8.0.22版本、DellG3电脑。linux中mysql忘记密码怎么解决解决方法:1、检查mysql服务是否启动,如果启动,关闭mysql服务 .

    2022年6月25日
    32
  • for()循环语句_for next循环语句

    for()循环语句_for next循环语句一、for语句结构:for(初始化表达式;循环条件表达式;循环后的操作表达式){执行语句;}循环条件表达式,必须是true或false示例:输出结果:第0次你好第1次你好第2次你

    2022年8月5日
    12
  • 创意无限:25款非常酷的高档名片设计欣赏

    创意无限:25款非常酷的高档名片设计欣赏名片是最强大的营销工具之一 只要你手一出 你就有机会与人沟通 推介你产品和业务 当然也会给客户留下深刻的印象 在当今竞争激烈的商业世界 花在市场营销和广告的费用很多 但你可以采取一个独特的 非常有创意的来作为成本最低而最有效益的营销工具 下面分享 25 款非常酷的国外名片设计欣赏 相信能够帮助你设计一款独一无二的名片 您可能还喜欢 40 款奇特的透明名片设计作品欣赏最新 70 佳很酷的

    2026年3月19日
    1
  • 跳过谷歌验证码_如何获取游戏验证码

    跳过谷歌验证码_如何获取游戏验证码本月底,谷歌Google即将停止全球图片验证码服务,这个困扰我们多年的验证码终于要退出历史的舞台了。官方宣告可以看以下截图:想必验证码的发展史已经众所周知了,从2002年到如今,经过了16年的发展,

    2022年8月1日
    14
  • tcplayer 源码改造第一弹 -> 自定义加密

    tcplayer 源码改造第一弹 -> 自定义加密前序简介主要介绍了基于 tcplayer 的源码改造 完成自定义的 hls 加密 保证知识产权不涉及 tcplayer 的使用以及框架如何调用 详情请看腾讯云点播文档源码解析中有些注释是笔者加的 如需定位 请不要复制注释人群适用于需要保护视频原作权的各类网站的开发人员不适合没有任何前端基础的小白 请谨慎观看 hls 自定义加密方案实现后端将上传到服务器的视频进行切片处理读取 m3u8 文

    2025年9月27日
    6

发表回复

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

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