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

 更新时间:2017年04月29日 14:05:12   作者:Aman  
这篇文章主要介绍了C# ListView 点击表头对数据进行排序功能的实现代码,需要的朋友可以参考下

添加表头单击事件

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#版json数据解析示例分享

    c#版json数据解析示例分享

    JSON(全称为JavaScript Object Notation) 是一种轻量级的数据交换格式。它是基于JavaScript语法标准的一个子集。 JSON采用完全独立于语言的文本格式,可以很容易在各种网络、平台和程序之间传输。JSON的语法很简单,易于人阅读和编写,同时也易于机器解析和生成
    2014-03-03
  • C# WebClient类用法实例

    C# WebClient类用法实例

    这篇文章主要介绍了C# WebClient类用法实例,本文讲解使用WebClient下载文件、OpenWriter打开一个流使用指定的方法将数据写入到uri以及上传文件示例,需要的朋友可以参考下
    2015-07-07
  • datatable去掉重复行的方法

    datatable去掉重复行的方法

    这篇文章主要介绍了datatable去掉重复行的方法,需要的朋友可以参考下
    2014-02-02
  • C# 动态加载程序集信息

    C# 动态加载程序集信息

    在设计模式的策略模式中,需要动态加载程序集信息,本文通过一个简单的实例,来讲解动态加载Dll需要的知识点。下面跟着小编一起来看下吧
    2017-03-03
  • C#模拟实现鼠标自动点击与消息发送功能

    C#模拟实现鼠标自动点击与消息发送功能

    这篇文章主要为大家详细介绍了C#如何利用windows api来模拟实现鼠标点击、右击、双击以及发送文本功能,文中的示例代码讲解详细,感兴趣的可以了解一下
    2022-08-08
  • C# WPF 建立无边框(标题栏)的登录窗口的示例

    C# WPF 建立无边框(标题栏)的登录窗口的示例

    这篇文章主要介绍了C# WPF 建立无边框(标题栏)的登录窗口的示例,帮助大家更好的理解和使用c#,感兴趣的朋友可以了解下
    2020-12-12
  • C#使用HtmlAgilityPack抓取糗事百科内容实例

    C#使用HtmlAgilityPack抓取糗事百科内容实例

    这篇文章主要介绍了C#使用HtmlAgilityPack抓取糗事百科内容的方法,实例分析了C#中HtmlAgilityPack的相关使用技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-07-07
  • C#实现最完整的文件和目录操作类实例

    C#实现最完整的文件和目录操作类实例

    这篇文章主要介绍了C#实现最完整的文件和目录操作类,涉及C#针对文件与目录的创建、获取、检测、删除等常用操作技巧,非常具有实用价值,需要的朋友可以参考下
    2015-05-05
  • C#连续任务Task.ContinueWith方法

    C#连续任务Task.ContinueWith方法

    这篇文章介绍了C#中的连续任务Task.ContinueWith方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-04-04
  • C# 实现连连看功能(推荐)

    C# 实现连连看功能(推荐)

    本文是利用C#实现连连看的小例子,使用线程thread实现后台运行时间控制,实现代码简单易懂,非常不错,具有参考借鉴价值,需要的朋友参考下吧
    2017-07-07

最新评论