ListView的Column排序是很常见的功能。具体实现的时候,主要是下面几步:

1、创建两个类

2、重载ColumnClick方法。

ListView的Column排序方法

ListView的Column排序方法usingSystem;
ListView的Column排序方法
usingSystem.Collections.Generic;
ListView的Column排序方法
usingSystem.ComponentModel;
ListView的Column排序方法
usingSystem.Data;
ListView的Column排序方法
usingSystem.Drawing;
ListView的Column排序方法
usingSystem.Text;
ListView的Column排序方法
usingSystem.Windows.Forms;
ListView的Column排序方法
usingSystem.Collections;
ListView的Column排序方法
ListView的Column排序方法
namespacetest
ListView的Column排序方法ListView的Column排序方法
...{
ListView的Column排序方法
publicpartialclassForm1:Form
ListView的Column排序方法ListView的Column排序方法
...{
ListView的Column排序方法
publicForm1()
ListView的Column排序方法ListView的Column排序方法
...{
ListView的Column排序方法InitializeComponent();
ListView的Column排序方法}

ListView的Column排序方法
ListView的Column排序方法
privatevoidlistView1_ColumnClick(objectsender,ColumnClickEventArgse)
ListView的Column排序方法ListView的Column排序方法
...{
ListView的Column排序方法
//CreateaninstanceoftheColHeaderclass.
ListView的Column排序方法
ColHeaderclickedCol=(ColHeader)this.listView1.Columns[e.Column];
ListView的Column排序方法
ListView的Column排序方法
//Settheascendingpropertytosortintheoppositeorder.
ListView的Column排序方法
clickedCol.ascending=!clickedCol.ascending;
ListView的Column排序方法
ListView的Column排序方法
//Getthenumberofitemsinthelist.
ListView的Column排序方法
intnumItems=this.listView1.Items.Count;
ListView的Column排序方法
ListView的Column排序方法
//Turnoffdisplaywhiledataisrepoplulated.
ListView的Column排序方法
this.listView1.BeginUpdate();
ListView的Column排序方法
ListView的Column排序方法
//PopulateanArrayListwithaSortWrapperofeachlistitem.
ListView的Column排序方法
ArrayListSortArray=newArrayList();
ListView的Column排序方法
for(inti=0;i<numItems;i++)
ListView的Column排序方法ListView的Column排序方法
...{
ListView的Column排序方法SortArray.Add(
newSortWrapper(this.listView1.Items[i],e.Column));
ListView的Column排序方法}

ListView的Column排序方法
ListView的Column排序方法
//SorttheelementsintheArrayListusinganewinstanceoftheSortComparer
ListView的Column排序方法
//class.Theparametersarethestartingindex,thelengthoftherangetosort,
ListView的Column排序方法
//andtheIComparerimplementationtouseforcomparingelements.Notethat
ListView的Column排序方法
//theIComparerimplementation(SortComparer)requiresthesort
ListView的Column排序方法
//directionforitsconstructor;trueifascending,othwisefalse.
ListView的Column排序方法
SortArray.Sort(0,SortArray.Count,newSortWrapper.SortComparer(clickedCol.ascending));
ListView的Column排序方法
ListView的Column排序方法
//Clearthelist,andrepopulatewiththesorteditems.
ListView的Column排序方法
this.listView1.Items.Clear();
ListView的Column排序方法
for(inti=0;i<numItems;i++)
ListView的Column排序方法
this.listView1.Items.Add(((SortWrapper)SortArray[i]).sortItem);
ListView的Column排序方法
ListView的Column排序方法
//Turndisplaybackon.
ListView的Column排序方法
this.listView1.EndUpdate();
ListView的Column排序方法
ListView的Column排序方法}

ListView的Column排序方法
ListView的Column排序方法
privatevoidbutton1_Click(objectsender,EventArgse)
ListView的Column排序方法ListView的Column排序方法
...{
ListView的Column排序方法
this.listView1.View=View.Details;
ListView的Column排序方法
ListView的Column排序方法
//AddcolumnsusingtheColHeaderclass.Thefourth
ListView的Column排序方法
//parameterspecifiestrueforanascendingsortorder.
ListView的Column排序方法
listView1.Columns.Add(newColHeader("Name",110,HorizontalAlignment.Left,true));
ListView的Column排序方法listView1.Columns.Add(
newColHeader("Region",50,HorizontalAlignment.Left,true));
ListView的Column排序方法listView1.Columns.Add(
newColHeader("Sales",70,HorizontalAlignment.Left,true));
ListView的Column排序方法
ListView的Column排序方法
//Addthedata.
ListView的Column排序方法ListView的Column排序方法
listView1.Items.Add(newListViewItem(newstring[]...{"Archer,Karen","4","0521.28"}));
ListView的Column排序方法ListView的Column排序方法listView1.Items.Add(
newListViewItem(newstring[]...{"Benson,Max","8","0828.54"}));
ListView的Column排序方法ListView的Column排序方法listView1.Items.Add(
newListViewItem(newstring[]...{"Bezio,Marin","3","0535.22"}));
ListView的Column排序方法ListView的Column排序方法listView1.Items.Add(
newListViewItem(newstring[]...{"Higa,Sidney","2","0987.50"}));
ListView的Column排序方法ListView的Column排序方法listView1.Items.Add(
newListViewItem(newstring[]...{"Martin,Linda","6","1122.12"}));
ListView的Column排序方法ListView的Column排序方法listView1.Items.Add(
newListViewItem(newstring[]...{"Nash,Mike","7","1030.11"}));
ListView的Column排序方法ListView的Column排序方法listView1.Items.Add(
newListViewItem(newstring[]...{"Sanchez,Ken","1","0958.78"}));
ListView的Column排序方法ListView的Column排序方法listView1.Items.Add(
newListViewItem(newstring[]...{"Smith,Ben","5","0763.25"}));
ListView的Column排序方法
ListView的Column排序方法
//ConnecttheListView.ColumnClickeventtotheColumnClickeventhandler.
ListView的Column排序方法
this.listView1.ColumnClick+=newColumnClickEventHandler(listView1_ColumnClick);
ListView的Column排序方法
ListView的Column排序方法
ListView的Column排序方法}

ListView的Column排序方法}

ListView的Column排序方法
ListView的Column排序方法
publicclassColHeader:ColumnHeader
ListView的Column排序方法ListView的Column排序方法
...{
ListView的Column排序方法
publicboolascending;
ListView的Column排序方法
publicColHeader(stringtext,intwidth,HorizontalAlignmentalign,boolasc)
ListView的Column排序方法ListView的Column排序方法
...{
ListView的Column排序方法
this.Text=text;
ListView的Column排序方法
this.Width=width;
ListView的Column排序方法
this.TextAlign=align;
ListView的Column排序方法
this.ascending=asc;
ListView的Column排序方法}

ListView的Column排序方法}

ListView的Column排序方法
ListView的Column排序方法
classSortWrapper
ListView的Column排序方法ListView的Column排序方法
...{
ListView的Column排序方法
internalListViewItemsortItem;
ListView的Column排序方法
internalintsortColumn;
ListView的Column排序方法
ListView的Column排序方法
ListView的Column排序方法
//ASortWrapperrequirestheitemandtheindexoftheclickedcolumn.
ListView的Column排序方法
publicSortWrapper(ListViewItemItem,intiColumn)
ListView的Column排序方法ListView的Column排序方法
...{
ListView的Column排序方法sortItem
=Item;
ListView的Column排序方法sortColumn
=iColumn;
ListView的Column排序方法}

ListView的Column排序方法
ListView的Column排序方法
//Textpropertyforgettingthetextofanitem.
ListView的Column排序方法
publicstringText
ListView的Column排序方法ListView的Column排序方法
...{
ListView的Column排序方法
get
ListView的Column排序方法ListView的Column排序方法
...{
ListView的Column排序方法
returnsortItem.SubItems[sortColumn].Text;
ListView的Column排序方法}

ListView的Column排序方法}

ListView的Column排序方法
ListView的Column排序方法
//ImplementationoftheIComparer
ListView的Column排序方法
//interfaceforsortingArrayListitems.
ListView的Column排序方法
publicclassSortComparer:IComparer
ListView的Column排序方法ListView的Column排序方法
...{
ListView的Column排序方法
boolascending;
ListView的Column排序方法
ListView的Column排序方法
//Constructorrequiresthesortorder;
ListView的Column排序方法
//trueifascending,otherwisedescending.
ListView的Column排序方法
publicSortComparer(boolasc)
ListView的Column排序方法ListView的Column排序方法
...{
ListView的Column排序方法
this.ascending=asc;
ListView的Column排序方法}

ListView的Column排序方法
ListView的Column排序方法
//ImplemnentationoftheIComparer:Compare
ListView的Column排序方法
//methodforcomparingtwoobjects.
ListView的Column排序方法
publicintCompare(objectx,objecty)
ListView的Column排序方法ListView的Column排序方法
...{
ListView的Column排序方法SortWrapperxItem
=(SortWrapper)x;
ListView的Column排序方法SortWrapperyItem
=(SortWrapper)y;
ListView的Column排序方法
ListView的Column排序方法
stringxText=xItem.sortItem.SubItems[xItem.sortColumn].Text;
ListView的Column排序方法
stringyText=yItem.sortItem.SubItems[yItem.sortColumn].Text;
ListView的Column排序方法
returnxText.CompareTo(yText)*(this.ascending?1:-1);
ListView的Column排序方法}

ListView的Column排序方法}

ListView的Column排序方法
ListView的Column排序方法}

ListView的Column排序方法}

相关文章:

  • 2022-12-23
  • 2021-10-18
  • 2022-12-23
  • 2022-12-23
  • 2021-12-30
  • 2022-01-17
猜你喜欢
  • 2021-09-25
  • 2022-01-16
  • 2022-02-14
  • 2022-12-23
  • 2021-12-12
  • 2022-01-06
相关资源
相似解决方案