技术开发 频道

ListView 单击表头排序


【IT168技术文档】

  建立排序类
class ListViewItemComparer : IComparer { /**//// <summary> /// 排序列 /// </summary> public int column; /**//// <summary> /// 排序方式 /// </summary> public SortOrder order; public ListViewItemComparer(int _column,SortOrder _so) { this.order = _so; this.column = _column; } public int Compare(object x, object y) { if (this.order == SortOrder.Ascending) return String.Compare(((ListViewItem)x).SubItems[column].Text, ((ListViewItem)y).SubItems[column].Text); else if (this.order == SortOrder.Descending) return String.Compare(((ListViewItem)y).SubItems[column].Text, ((ListViewItem)x).SubItems[column].Text); return String.Compare(((ListViewItem)x).SubItems[column].Text, ((ListViewItem)y).SubItems[column].Text); } } 为列表框创建排序对象并绑定事件 this.lvwWebSite.ListViewItemSorter = new ListViewItemComparer(0, SortOrder.Ascending); this.lvwWebSite.ColumnClick += new System.Windows.Forms.ColumnClickEventHandler(this.lvwWebSite_ColumnClick); private void lvwWebSite_ColumnClick(object sender, ColumnClickEventArgs e) { ListViewItemComparer lvic = (ListViewItemComparer)this.lvwWebSite.ListViewItemSorter;//获取排序对象 lvic.column = e.Column;//设置排序列 lvic.order = (lvic.order == SortOrder.Ascending ? SortOrder.Descending : SortOrder.Ascending);//设置排序方式 this.lvwWebSite.Sort(); }
0
相关文章