listview winfrom 表头_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”需要 1 个类型参数”

这时只需要using System.Collections.Generic;改为using System.Collections; 即可。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值