C#中加強ListView控件的功能

字號:

首先是實現(xiàn)ListView控件的自定義排序,訂閱ListView控件的ColumnClick事件
    private void listView1_ColumnClick(object sender, ColumnClickEventArgs e)
    {
    if (this.listView1.Columns[e.Column].Tag == null)
    this.listView1.Columns[e.Column].Tag = true;
    bool tabK = (bool)this.listView1.Columns[e.Column].Tag;
    if (tabK)
    this.listView1.Columns[e.Column].Tag = false;
    else
    this.listView1.Columns[e.Column].Tag = true;
    this.listView1.ListViewItemSorter = new ListViewSort(e.Column, this.listView1.Columns[e.Column].Tag); 
    //指定排序器并傳送列索引與升序降序關(guān)鍵字
    this.listView1.Sort();//對列表進行自定義排序
    }
    排序類的定義:
    ///
    ///自定義ListView控件排序函數(shù)
    ///
    class ListViewSort : IComparer
    {
    private int col;
    private bool descK;
    public ListViewSort()
    {
    col = 0;
    }
    public ListViewSort(int column, object Desc)
    {
    descK = (bool)Desc;
    col = column; //當(dāng)前列,0,1,2...,參數(shù)由ListView控件的ColumnClick事件傳遞
    }
    public int Compare(object x, object y)
    {
    int tempInt = String.Compare(((ListViewItem)x).SubItems[col].Text, ((ListViewItem)y).SubItems[col].Text);
    if (descK) return -tempInt;
    else return tempInt;
    }
    }
    上面的ListView控件的自定義排列,即單擊ListView控件的標題時進行排序