C# winform中listview排序

本文解决方案是采用下面链接中的解决方案。十分感谢这篇文章的作者bright:http://blog.163.com/[email protected]/blog/static/1312896522010614103538287/

看到网上的许多解决方案(其实就是一种,只不过被转载和粘贴,所以没什么用。同时那么多的代码居然屌用没有(原谅我说脏话了)(那种方法的解决方案是这样的https://support.microsoft.com/en-us/kb/319401)。最后终于在一篇网易博客上找到了解决方案。

这里转一下方案以便自己查找:

先创建一个类:ListViewColumnSorter继承自:IComparer

整个类代码如下:

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Text;
 5 using System.Collections;
 6 using System.Windows.Forms;
 7
 8 namespace WindowsFormsApplication3
 9 {
10     //class ListViewColumnSorter: IComparer
11     //{
12     /// <summary>
13     /// This class is an implementation of the ‘IComparer‘ interface.
14     /// </summary>
15    // public class ListViewColumnSorter : IComparer
16     //{
17         /// <summary>
18         /// Author:沈舜聪
19         /// CreateDate:2010-07-13
20         /// Description:ListView控件排序比较器
21         /// </summary>
22         public class ListViewItemComparer : IComparer
23         {
24             private int col;
25             public int Compare(object x, object y)
26             {
27                 int returnVal = -1;
28                 returnVal = String.Compare(((ListViewItem)x).SubItems[col].Text,
29                 ((ListViewItem)y).SubItems[col].Text);
30                 return returnVal;
31             }
32         }
33 }

listview的头click事件如下:

1 private void listView1_ColumnClick(object sender, ColumnClickEventArgs e)
2         {
3
4             this.listView1.ListViewItemSorter = new ListViewItemComparer();
5             // Call the sort method to manually sort.
6             listView1.Sort();
7         }

好了下面就可以了

时间: 2024-10-12 23:38:25

C# winform中listview排序的相关文章

C#winform中ListView的使用

使用ListView模仿Windows系统的资源管理器界面,实现文件(夹)的浏览.重命名.删除及查询等功能,主要功能界面展示如下: 1 using System; 2 using System.Collections.Generic; 3 using System.ComponentModel; 4 using System.Data; 5 using System.Drawing; 6 using System.Linq; 7 using System.Text; 8 using System

【2017-04--28】Winform中ListView控件

ListView控件是一个winform自带的表格型的应用数据展示控件 1.先设置列,设置视图属性选择Details. 添加列,修改列名. 2.编辑项(添加行数据) 添加一个ListViewItem对象,该对象的Text对应着是第一列的数据, 在该对象的SubItems属性的集合中设置该行数据后面几列的值. 3.ListView属性 - Columns 列的集合 - Items 行数据的集合 - FullRowSelect  满行选中 - MultiSelect   是否允许选择多项 - Hid

Winform中ListView鼠标移动使用toolTip显示信息

今天在做一个酒店管理系统的时候用到了ListView,突然想到是否能够当鼠标移动到某一项的时候给出具体房间的信息呢! 首先设置Listview的MouseMove事件 1.获取当前坐标的项 ListViewItem lvi = this.listView.GetItemAt(e.X, e.Y); 2.判断是否有选中的项,如果有即显示对应的信息 if(lvi != null) { toolTip.show("Test",listView,new Point(e.X,e.Y),1000);

C#winform中ListView及ContextMenuStrip的使用

1.新建一个Windows窗体应用程序 2.添加文件夹及图片资源 文件夹图片(folder.png),文件图片(file.png) 3.在设计模式下添加控件 即:1个ListView(lvwData).2个ImageList(imgLarge,imgSmall),1个ContextMenuStrip(cmsStyle),如下所示: 4.设置各控件详细属性 2个ImageList(imgLarge,imgSmall)添加Images.设置ImageSize(imgLarge--32*32, img

WinForm中ListView的使用

每一行是一个ListViewItem对象,每一项是一个ListViewSubItem对象 样式 整行选择:this.lvDataSourceSearchHistory.FullRowSelect = true; 文本是否可编辑:this.lvDataSourceSearchHistory.LabelEdit = false; 隐藏列头:this.lvDataSourceSearchHistory.HeaderStyle = ColumnHeaderStyle.None; 边框样式:this.lv

在ListView中实现排序

此处介绍的情境是: (1)使用table布局ListView. (2)ListView的数据源是List<T>. (3)排序字段2个(帖子的回复次数和浏览次数),都是int类型. 基本思路: ListView触发数据源排序,使用数据源(即List<T>)的Sort()方法,又一次绑定数据源到ListView. 实现步骤: (1)可查知,List<T>的Sort()方法带有一个ICompare<T>泛型接口类型的形參.所以,首先构造继承该泛型接口的类型: //

20150226—C# winform中的ListView解析

ListView在WinForm中多用于表的构建,可以直观的显示表的信息,其格式如同SQL的表 这是他的位置,在公共控件中: Listview的几个重要属性:Columms(集合).Groups(集合).Items(集合).View(视图).以及Items中的SubItems(集合) 其中View共有5种样式,常用选项为Details(详细资料) 下图划分了ListView中Details样式下,各行各列的集合名. Columns集合:需要在其中编辑列名,第一行(列名) Items集合,第一列的

Android中ListView字母排序,实现字母挤压效果以及右侧快速选中字母,搜索关键字功能

Android中ListView字母排序,实现字母挤压效果以及右侧快速选中字母,搜索关键字功能 本文中阐述如何自定义EditText实现搜索框自定义的样式以及挤压字母的思路等 自定义EditText 相关的drawable文件 主界面以及相关的适配器 结果展示 定义要呈现的EditText的样式 public class ClearEditText extends EditText implements OnFocusChangeListener, TextWatcher { /** * 定义删

20141226—C# winform中的ListView解析

ListView在WinForm中多用于表的构建,可以直观的显示表的信息,其格式如同SQL的表 这是他的位置,在公共控件中: Listview的几个重要属性:Columms(集合).Groups(集合).Items(集合).View(视图).以及Items中的SubItems(集合) 其中View共有5种样式,常用选项为Details(详细资料) 下图划分了ListView中Details样式下,各行各列的集合名. Columns集合:需要在其中编辑列名,第一行(列名) Items集合,第一列的