using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Text;
using System.Windows.Forms;
using System.Collections;
namespace OnlineMarketingTool.PlayManagement
...{
public partial class MyList : System.Windows.Forms.ListView
...{
//加入排序类
private mySorter sorter;
public MyList()
...{
sorter = new mySorter();
this.ListViewItemSorter = sorter;
sorter.SortOrder = SortOrder.Ascending;
InitializeComponent();
this.HideSelection = false;
}
private void MyList_ColumnClick(object sender, ColumnClickEventArgs e)
...{
if (e.Column == this.sorter.SortColumn)
...{
if (this.sorter.SortOrder == SortOrder.Ascending)
this.sorter.SortOrder = SortOrder.Descending;
else if (this.sorter.SortOrder == SortOrder.Descending)
this.sorter.SortOrder = SortOrder.Ascending;
else
this.sorter.SortOrder = SortOrder.Ascending;
}
else
...{
this.sorter.SortColumn = e.Column;
}
this.Sort(); 
}

}
}
//-------------------------------------------------------
namespace OnlineMarketingTool.PlayManagement
...{
partial class MyList
...{
/**//// <summary>
/// 必需的设计器变量。
/// </summary>
private System.ComponentModel.IContainer components = null;

/**//// <summary>
/// 清理所有正在使用的资源。
/// </summary>
/// <param name="disposing">如果应释放托管资源,为 true;否则为 false。</param>
protected override void Dispose(bool disposing)
...{
if (disposing && (components != null))
...{
components.Dispose();
}
base.Dispose(disposing);
}

组件设计器生成的代码#region 组件设计器生成的代码

/**//// <summary>
/// 设计器支持所需的方法 - 不要
/// 使用代码编辑器修改此方法的内容。
/// </summary>
private void InitializeComponent()
...{
components = new System.ComponentModel.Container();
this.ColumnClick +=new System.Windows.Forms.ColumnClickEventHandler(MyList_ColumnClick);
}
#endregion
}
}
//---------------------------------
using System;
using System.Collections.Generic;
using System.Text;
using System.Collections;
using System.Windows.Forms;
namespace OnlineMarketingTool.PlayManagement
...{
public class mySorter : IComparer
...{
private Comparer comparer;
private int sortColumn;
private SortOrder sortOrder;
public mySorter()
...{
sortColumn = 0;
sortOrder = SortOrder.None;
comparer = Comparer.Default;
}
//指定进行排序的列
public int SortColumn
...{
get ...{ return sortColumn; }
set ...{ sortColumn = value; }
}
//指定按升序或降序进行排序
public SortOrder SortOrder
...{
get ...{ return sortOrder; }
set ...{ sortOrder = value; }
}
public int Compare(object x, object y)
...{
int CompareResult;
ListViewItem itemX = (ListViewItem)x;
ListViewItem itemY = (ListViewItem)y;
//在这里您可以提供自定义的排序
CompareResult = comparer.Compare(itemX.SubItems[this.sortColumn].Text, itemY.SubItems[this.sortColumn].Text);
if (this.SortOrder == SortOrder.Ascending)
return CompareResult;
else
if (this.SortOrder == SortOrder.Descending)
return (-CompareResult);
else
return 0;
}
}
}


307

被折叠的 条评论
为什么被折叠?



