【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();
}