1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > C# winform中listview排序

C# winform中listview排序

时间:2020-04-25 23:41:52

相关推荐

C# winform中listview排序

C# winform中listview排序

本文解决方案是采用下面链接中的解决方案。十分感谢这篇文章的作者bright:/shensc@126/blog/static/131289652614103538287/

看到网上的许多解决方案(其实就是一种,只不过被转载和粘贴,所以没什么用。同时那么多的代码居然屌用没有(原谅我说脏话了)(那种方法的解决方案是这样的/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: IComparer11//{12/// <summary>13/// This class is an implementation of the 'IComparer' interface.14/// </summary>15 // public class ListViewColumnSorter : IComparer16//{17 /// <summary>18 /// Author:沈舜聪19 /// CreateDate:-07-1320 /// Description:ListView控件排序比较器21 /// </summary>22 public class ListViewItemComparer : IComparer23 {24 private int col;25 public int Compare(object x, object y) 26 {27 int returnVal = -1;28 returnVal = pare(((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 }

以上我转载自网络,来源:/hellochenchen/p/5415639.html

进行上面代码测试的时候,我发现效果并未像我想象的一样,是按大小排序的,而是按数字的第一个数排序的,这当然不是我要的效果,研究了一下原作者的代码,后边稍微改了一下代码,完成了我要的效果。下面贴上代码

public class ListViewItemComparer : IComparer{private int col=0;public int Compare(object x, object y){int returnVal = -1;returnVal = pare(((ListViewItem)x).SubItems[col].Name,((ListViewItem)y).SubItems[col].Name);return returnVal;}}

只是将SubItems[col].Text改成了Name,就达到了我要的结果。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。