请教WinForm中ListView的排序问题

BluestarsWang 2004-10-15 09:46:06
我的ListView中的一列存放的是数字,可是按照这一列进行降序重排序的时候,排序方式是按照字符串的顺序进行的,也就是说70可能排在100之上,请问如何让该列按照数字进行排序?
多谢
...全文
236 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
yangqi0226 2004-11-10
  • 打赏
  • 举报
回复
MARK
bebetoztx29 2004-10-15
  • 打赏
  • 举报
回复
http://community.csdn.net/Expert/topic/3458/3458010.xml?temp=.5858271
sequelbo 2004-10-15
  • 打赏
  • 举报
回复
using System;
using System.Windows.Forms;
using System.Collections;

namespace HPub
{
/// <summary>
/// ListViewItemComparer 的摘要说明。
/// </summary>
public class ListViewItemComparer : IComparer
{
public int col;
public ListViewItemComparer()
{
col=0;
}
public ListViewItemComparer(int column)
{
col=column;
}
public int Compare(object x, object y)
{
return String.Compare(((ListViewItem)x).SubItems[col].Text, ((ListViewItem)y).SubItems[col].Text);
}
}

}
wangxt 2004-10-15
  • 打赏
  • 举报
回复
转换成数据再排啊
Convert.ToInt32()
sequelbo 2004-10-15
  • 打赏
  • 举报
回复
private void listView1_ColumnClick(object sender, System.Windows.Forms.ColumnClickEventArgs e)
{

if(this.listView1.ListViewItemSorter!=null)
{
ListViewItemComparer l=(ListViewItemComparer)(this.listView1.ListViewItemSorter) ;
if(e.Column!=l.col)
{
this.listView1.ListViewItemSorter= new ListViewItemComparer(e.Column);
}
}
else
{
this.listView1.ListViewItemSorter= new ListViewItemComparer(e.Column);
}

if(this.listView1.Sorting==SortOrder.Descending)
this.listView1.Sorting=SortOrder.Ascending;
else
this.listView1.Sorting=SortOrder.Descending;this.listView1.Sort();
}
BluestarsWang 2004-10-15
  • 打赏
  • 举报
回复
谢谢大家,已经搞定了,马上结帖

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧