C# ListView 点击表头对数据进行排序功能的实现代码

发布时间 - 2026-01-11 00:54:15    点击率:

添加表头单击事件

private void listView1_ColumnClick(object sender, ColumnClickEventArgs e)
    {
      if (listView1.Columns[e.Column].Tag == null)
      {
        listView1.Columns[e.Column].Tag = true;
      }
      bool tabK = (bool)listView1.Columns[e.Column].Tag;
      if (tabK)
      {
        listView1.Columns[e.Column].Tag = false;
      }
      else
      {
        listView1.Columns[e.Column].Tag = true;
      }
      listView1.ListViewItemSorter = new ListViewSort(e.Column, listView1.Columns[e.Column].Tag);
      //指定排序器并传送列索引与升序降序关键字
      listView1.Sort();//对列表进行自定义排序
}

排序用到的类

public class ListViewSort : IComparer
  {
    private int col;
    private bool descK;

    public ListViewSort()
    {
      col = 0;
    }
    public ListViewSort(int column, object Desc)
    {
      descK = (bool)Desc;
      col = column; //当前列,0,1,2...,参数由ListView控件的ColumnClick事件传递
    }
    public int Compare(object x, object y)
    {
      int tempInt = String.Compare(((ListViewItem)x).SubItems[col].Text, ((ListViewItem)y).SubItems[col].Text);
      if (descK)
      {
        return -tempInt;
      }
      else
      {
        return tempInt;
      }
    }
  }

注意:
有的会报“错误 CS0305: 使用泛型 类型“System.Collections.Generic.IComparer<T>”需要 1 个类型参数”
这时只需要using System.Collections.Generic;改为using System.Collections; 即可。


# C#  # ListView  # c# winform treelistview的使用(treegridview)实例详解  # C#中WPF ListView绑定数据的实例详解  # C# WPF ListView控件的实例详解  # C#实现在listview中插入图片实例代码  # C#中ListView控件实现窗体代码  # C#下listview如何插入图片  # C#实现listview Group收缩扩展的方法  # C#实现带进度条的ListView  # C#实现读取DataSet数据并显示在ListView控件中的方法  # 一文掌握C# ListView控件的用法和示例代码  # 会报  # 升序  # 自定义  # 只需要  # 单击  # 降序  # null  # true  # Tag  # Columns  # Column  # bool  # ListViewSort  # gt  # ListViewItemSorter  # tabK  # false  # brush  # csharp  # class 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Laravel中间件如何使用_Laravel自定义中间件实现权限控制  武汉网站设计制作公司,武汉有哪些比较大的同城网站或论坛,就是里面都是武汉人的?  java获取注册ip实例  Laravel中间件起什么作用_Laravel Middleware请求生命周期与自定义详解  微信小程序 input输入框控件详解及实例(多种示例)  Angular 表单中正确绑定输入值以确保提交与验证正常工作  如何在阿里云部署织梦网站?  谷歌Google入口永久地址_Google搜索引擎官网首页永久入口  ChatGPT怎么生成Excel公式_ChatGPT公式生成方法【指南】  香港服务器网站搭建教程-电商部署、配置优化与安全稳定指南  Laravel如何实现数据导出到CSV文件_Laravel原生流式输出大数据量CSV【方案】  高防服务器租用首荐平台,企业级优惠套餐快速部署  Laravel Telescope怎么调试_使用Laravel Telescope进行应用监控与调试  Laravel如何实现API版本控制_Laravel版本化API设计方案  非常酷的网站设计制作软件,酷培ai教育官方网站?  HTML 中如何正确使用模板变量为元素的 name 属性赋值  Laravel怎么清理缓存_Laravel optimize clear命令详解  如何快速上传自定义模板至建站之星?  JavaScript如何实现路由_前端路由原理是什么  专业型网站制作公司有哪些,我设计专业的,谁给推荐几个设计师兼职类的网站?  如何快速生成ASP一键建站模板并优化安全性?  如何确保FTP站点访问权限与数据传输安全?  新三国志曹操传主线渭水交兵攻略  为什么要用作用域操作符_php中访问类常量与静态属性的优势【解答】  HTML5空格和nbsp有啥关系_nbsp的作用及使用场景【说明】  Laravel如何与Pusher实现实时通信?(WebSocket示例)  Laravel的辅助函数有哪些_Laravel常用Helpers函数提高开发效率  Laravel Seeder怎么填充数据_Laravel数据库填充器的使用方法与技巧  如何快速查询网站的真实建站时间?  如何在七牛云存储上搭建网站并设置自定义域名?  html5源代码发行怎么设置权限_访问权限控制方法与实践【指南】  1688铺货到淘宝怎么操作 1688一键铺货到自己店铺详细步骤  如何在宝塔面板创建新站点?  详解jQuery中的事件  Laravel如何优雅地处理服务层_在Laravel中使用Service层和Repository层  php结合redis实现高并发下的抢购、秒杀功能的实例  车管所网站制作流程,交警当场开简易程序处罚决定书,在交警网站查询不到怎么办?  Laravel如何使用软删除(Soft Deletes)功能_Eloquent软删除与数据恢复方法  bootstrap日历插件datetimepicker使用方法  Laravel怎么实现前端Toast弹窗提示_Laravel Session闪存数据Flash传递给前端【方法】  韩国服务器如何优化跨境访问实现高效连接?  手机钓鱼网站怎么制作视频,怎样拦截钓鱼网站。怎么办?  Laravel怎么实现模型属性的自动加密  如何用ChatGPT准备面试 模拟面试问答与职场话术练习教程  php485函数参数是什么意思_php485各参数详细说明【介绍】  如何基于云服务器快速搭建网站及云盘系统?  Linux网络带宽限制_tc配置实践解析【教程】  Laravel任务队列怎么用_Laravel Queues异步处理任务提升应用性能  Laravel如何发送邮件和通知_Laravel邮件与通知系统发送步骤  BootStrap整体框架之基础布局组件