首 页文章中心下载中心繁體中文
设为首页
加入收藏
联系我们
您当前的位置:开源盛世-源代码下载网 -> 文章中心 -> 网站开发类 -> NET 技术 -> .NET基础 -> 文章内容 退出登录 用户管理
栏目导航
· .NET基础 · Asp.Net
· 综合应用 · 数据库应用
· XML 应用 · 控件开发和使用
热门文章
· Tab Control控件使用...
· 学生档案管理系统
· [图文] 排列组合公式
· UTF-8与GB2312之间的...
· DirectShow下载安装...
· Virtual PC 在PAE模...
· Windows2000终端服务...
· MapInfo上的GIS系统...
· kalman filter 卡尔...
· Windows2000终端服务...
相关文章
如何对ListView的项进行排序
作者:佚名  来源:vscodes.com整理  发布时间:2005-12-16 13:01:50  发布人:Polaris

减小字体 增大字体


如何对ListView的项进行排序   

     当您使用资源浏览器查看文件时,您可以随心所欲的按名称、大小、类型及修改日期不同的列对文件进行大小排序。.Net提供的ListView组件没有直接提供这种功能,但要实现并不难。
    ListView.Sort()方法的功能是“对列表视图的项进行排序”,可当您调用它时却什么也没有发生,原因是您没有为listView1.ListViewItemSorter指定排序器。所以,首先必须写一个排序类。
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;
}
}
  

    如何使用这个类,很简单。新建一个Windows应用程序,加入ListView组件listView1并将其View属性设为Details。

//加入排序类
private mySorter sorter;
//修改窗体构造函数
public Form1()
{
InitializeComponent();
sorter=new myColumnSorter();
//为ListViewItemSorter指定排序类
this.listView1.ListViewItemSorter=sorter;
sorter.SortOrder=SortOrder.Ascending;
}
//给单击表头事件添加代码
private void listView1_ColumnClick(object sender, System.Windows.Forms.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
return;
}
else
{
this.sorter.SortColumn=e.Column;
}
this.listView1.Sort();
}
   怎么样,效果不错吧,如果您需要自定义排序,那么您可以修改排序器的Compare()方法。


End of《如何对ListView的项进行排序》

[] [返回上一页] [打 印] [收 藏]
下一篇文章:DataGrid使用技巧(一)
 
∷相关“如何对ListView的项进行排序”文章评论∷
(评论内容只代表网友观点,与本站立场无关!) [更多评论...]
关于本站 - 网站帮助 - 广告合作 - 下载声明 - 友情连接 - 网站地图 网站目录 鄂ICP备06007162
开源盛世 版权所有Copyright © 2003-2005 VSCodes.Com. All Rights Reserved.