C# listview 点击列头排序的实例
实例如下:
#region自定义变量 intcurrentCol=-1; boolsort; #endregion//列头点击事件 privatevoidlvw_ColumnClick(objectsender,ColumnClickEventArgse) { stringAsc=((char)0x25bc).ToString().PadLeft(4,''); stringDes=((char)0x25b2).ToString().PadLeft(4,''); if(sort==false) { sort=true; stringoldStr=this.lvw.Columns[e.Column].Text.TrimEnd((char)0x25bc,(char)0x25b2,''); this.lvw.Columns[e.Column].Text=oldStr+Des; } elseif(sort==true) { sort=false; stringoldStr=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=newListViewItemComparerNum(e.Column,sort); else lvw.ListViewItemSorter=newListViewItemComparer(e.Column,sort); this.lvw.Sort(); introwCount=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; }//文本比较器publicclassListViewItemComparer:IComparer { publicboolsort_b; publicSortOrderorder=SortOrder.Ascending; privateintcol; publicListViewItemComparer() { col=0; } publicListViewItemComparer(intcolumn,boolsort) { col=column; sort_b=sort; } publicintCompare(objectx,objecty) { if(sort_b) { returnString.Compare(((ListViewItem)x).SubItems[col].Text,((ListViewItem)y).SubItems[col].Text); } else { returnString.Compare(((ListViewItem)y).SubItems[col].Text,((ListViewItem)x).SubItems[col].Text); } } }//数字比较器 publicclassListViewItemComparerNum:IComparer { publicboolsort_b; publicSortOrderorder=SortOrder.Ascending; privateintcol; publicListViewItemComparerNum() { col=0; } publicListViewItemComparerNum(intcolumn,boolsort) { col=column; sort_b=sort; } publicintCompare(objectx,objecty) { decimald1=Convert.ToDecimal(((ListViewItem)x).SubItems[col].Text); decimald2=Convert.ToDecimal(((ListViewItem)y).SubItems[col].Text); if(sort_b) { returndecimal.Compare(d1,d2); } else { returndecimal.Compare(d2,d1); } } }
以上这篇C#listview点击列头排序的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。