C# listview 点击列头排序的实例

发布时间 - 2026-01-10 22:47:32    点击率:

实例如下:

#region 自定义变量
  int currentCol = -1;
  bool sort;
  #endregion//列头点击事件

private void lvw_ColumnClick(object sender, ColumnClickEventArgs e)
  {
   string Asc = ((char)0x25bc).ToString().PadLeft(4, ' ');
   string Des = ((char)0x25b2).ToString().PadLeft(4, ' ');

   if (sort == false)
   {
    sort = true;
    string oldStr = this.lvw.Columns[e.Column].Text.TrimEnd((char)0x25bc, (char)0x25b2, ' ');
    this.lvw.Columns[e.Column].Text = oldStr + Des;
   }
   else if (sort == true)
   {
    sort = false;
    string oldStr = this.lvw.Columns[e.Column].Text.TrimEnd((char)0x25bc, (char)0x25b2, ' ');
    this.lvw.Columns[e.Column].Text = oldStr + Asc;
   }

   if(lvw.Columns[e.Column].Tag.ToString()=="n")//在设计器中把列头的tag设为"n",则表示该列按数字比较器处理,否则为文本
    lvw.ListViewItemSorter = new ListViewItemComparerNum(e.Column, sort);
   else
    lvw.ListViewItemSorter = new ListViewItemComparer(e.Column, sort);
   this.lvw.Sort();
   int rowCount = this.lvw.Items.Count;
   if (currentCol != -1)
   {
    if (e.Column != currentCol)
     this.lvw.Columns[currentCol].Text = this.lvw.Columns[currentCol].Text.TrimEnd((char)0x25bc, (char)0x25b2, ' ');
   }
   currentCol = e.Column;
  }//文本比较器public class ListViewItemComparer : IComparer
  {
   public bool sort_b;
   public SortOrder order = SortOrder.Ascending;

   private int col;

   public ListViewItemComparer()
   {
    col = 0;
   }

   public ListViewItemComparer(int column, bool sort)
   {
    col = column;
    sort_b = sort;
   }

   public int Compare(object x, object y)
   {
    if (sort_b)
    {
     return String.Compare(((ListViewItem)x).SubItems[col].Text, ((ListViewItem)y).SubItems[col].Text);
    }
    else
    {
     return String.Compare(((ListViewItem)y).SubItems[col].Text, ((ListViewItem)x).SubItems[col].Text);
    }
   }
  }  //数字比较器
  public class ListViewItemComparerNum : IComparer
  {
   public bool sort_b;
   public SortOrder order = SortOrder.Ascending;

   private int col;

   public ListViewItemComparerNum()
   {
    col = 0;
   }

   public ListViewItemComparerNum(int column, bool sort)
   {
    col = column;
    sort_b = sort;
   }

   public int Compare(object x, object y)
   {
    decimal d1=Convert.ToDecimal(((ListViewItem)x).SubItems[col].Text);
    decimal d2=Convert.ToDecimal(((ListViewItem)y).SubItems[col].Text);
    if (sort_b)
    {
     return decimal.Compare(d1,d2);
    }
    else
    {
     return decimal.Compare(d2,d1);
    }
   }
  }

以上这篇C# listview 点击列头排序的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。


# c  # listview点击排序  # C#中WPF ListView绑定数据的实例详解  # C# ListView 点击表头对数据进行排序功能的实现代码  # C#实现在listview中插入图片实例代码  # C#中ListView控件实现窗体代码  # C#下listview如何插入图片  # C#实现listview Group收缩扩展的方法  # C#实现带进度条的ListView  # C#使用listView增删操作实例  # 浅谈C#中ListView类的用法  # 给大家  # 设为  # 希望能  # 自定义  # 这篇  # 则为  # 小编  # 大家多多  # 器中  # string  # Asc  # true  # ColumnClickEventArgs  # lvw_ColumnClick  # object  # sender  # Des  # ToString  # PadLeft  # x25bc 


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


相关推荐: ,在苏州找工作,上哪个网站比较好?  深圳网站制作公司好吗,在深圳找工作哪个网站最好啊?  如何在建站宝盒中设置产品搜索功能?  Angular 表单中正确绑定输入值以确保提交与验证正常工作  Android仿QQ列表左滑删除操作  百度浏览器如何管理插件 百度浏览器插件管理方法  JavaScript如何实现错误处理_try...catch如何捕获异常?  如何用AI帮你把自己的生活经历写成一个有趣的故事?  laravel怎么通过契约(Contracts)编程_laravel契约(Contracts)编程方法  什么是javascript作用域_全局和局部作用域有什么区别?  如何快速启动建站代理加盟业务?  Laravel怎么多语言本地化设置_Laravel语言包翻译与Locale动态切换【手册】  Laravel如何集成第三方登录_Laravel Socialite实现微信QQ微博登录  如何快速搭建高效可靠的建站解决方案?  网站制作软件免费下载安装,有哪些免费下载的软件网站?  桂林网站制作公司有哪些,桂林马拉松怎么报名?  打开php文件提示内存不足_怎么调整php内存限制【解决方案】  laravel怎么用DB facade执行原生SQL查询_laravel DB facade原生SQL执行方法  极客网站有哪些,DoNews、36氪、爱范儿、虎嗅、雷锋网、极客公园这些互联网媒体网站有什么差异?  php嵌入式断网后怎么恢复_php检测网络重连并恢复硬件控制【操作】  laravel怎么为API路由添加签名中间件保护_laravel API路由签名中间件保护方法  宙斯浏览器怎么屏蔽图片浏览 节省手机流量使用设置方法  Windows10怎样连接蓝牙设备_Windows10蓝牙连接步骤【教程】  如何在七牛云存储上搭建网站并设置自定义域名?  INTERNET浏览器怎样恢复关闭标签页_INTERNET浏览器标签恢复快捷键与方法【指南】  简历在线制作网站免费版,如何创建个人简历?  JavaScript实现Fly Bird小游戏  音乐网站服务器如何优化API响应速度?  如何获取PHP WAP自助建站系统源码?  Javascript中的事件循环是如何工作的_如何利用Javascript事件循环优化异步代码?  高性能网站服务器配置指南:安全稳定与高效建站核心方案  教你用AI将一段旋律扩展成一首完整的曲子  国美网站制作流程,国美电器蒸汽鍋怎么用官方网站?  如何选择可靠的免备案建站服务器?  宙斯浏览器文件分类查看教程 快速筛选视频文档与图片方法  Laravel怎么调用外部API_Laravel Http Client客户端使用  Android自定义listview布局实现上拉加载下拉刷新功能  详解vue.js组件化开发实践  如何自定义建站之星模板颜色并下载新样式?  如何在香港免费服务器上快速搭建网站?  Laravel如何部署到服务器_线上部署Laravel项目的完整流程与步骤  HTML透明颜色代码怎么让下拉菜单透明_下拉菜单透明背景指南【技巧】  Python自动化办公教程_ExcelWordPDF批量处理案例  作用域操作符会触发自动加载吗_php类自动加载机制与::调用【教程】  使用C语言编写圣诞表白程序  大型企业网站制作流程,做网站需要注册公司吗?  Laravel Admin后台管理框架推荐_Laravel快速开发后台工具  Edge浏览器提示“由你的组织管理”怎么解决_去除浏览器托管提示【修复】  Laravel如何生成和使用数据填充?(Seeder和Factory示例)  教学论文网站制作软件有哪些,写论文用什么软件 ?