应用开发技巧 C#中加强ListView控件的功能

发表于:2007-06-17来源:作者:点击数: 标签:
下一页 1 2 首先是实现ListView控件的自定义排序,订阅ListView控件的ColumnClick事件 private void listView1_ColumnClick(object sender, ColumnClickEventArgs e) { if (this.listView1.Columns[e.Column].Tag == null) this.listView1.Columns[e.Column].

下一页 1 2 

   

  首先是实现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); 
    //指定排序器并传送列索引与升序降序关键字
    this.listView1.Sort();//对列表进行自定义排序
  }

 

    排序类的定义:

  ///
  ///自定义ListView控件排序函数
  ///

  class ListViewSort : IComparer
  {
   private int col;
   private bool descK;

   public ListViewSort()
   {
    col = 0;
   }
   public ListViewSort(int column, object Desc)
   {
    descK = (bool)Desc;
    col = column; //当前列,0,1,2...,参数由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;
   }
  }

原文转自:http://www.ltesting.net