C#中加強ListView控制項的功能

來源:互聯網
上載者:User

首先是實現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;
 }
}

上面的ListView控制項的自訂排列,即單擊ListView控制項的標題時進行排序

下面將實現ListView控制項的最後一列的去除,即自動調整合適的大小

首先寫一個調整ListView控制項列寬的函數

///
///自動調整listView控制項最後一列的列寬
///
///
///
private void 調整LV列寬()
{
 listView1.ColumnWidthChanged -= new ColumnWidthChangedEventHandler(listView1_ColumnWidthChanged);
 備忘.AutoResize(ColumnHeaderAutoResizeStyle.HeaderSize);
 listView1.ColumnWidthChanged += new ColumnWidthChangedEventHandler(listView1_ColumnWidthChanged);
}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.