winform中的gridview排序 一个form 中有一个gridview,点击某一列时按此列排序,请问该怎么实现.谢谢给位了,最好给出详细的代码,必有高分相谢 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你这问题,其实不难,就是用起来复杂些我给你 贴点代码,有不明白的地方 发消息给我MySorter sorter=new MySorter();lswBase.ListViewItemSorter=sorter;private void lswBase_ColumnClick(object sender, System.Windows.Forms.ColumnClickEventArgs e){ if(lswBase.Items.Count!=0) { if (e.Column==sorter.SortColumn) { if (sorter.SortOrder==SortOrder.Ascending) sorter.SortOrder=SortOrder.Descending; else if (sorter.SortOrder==SortOrder.Descending) sorter.SortOrder=SortOrder.Ascending; else return; } else { sorter.SortColumn=e.Column; } this.lswBase.Sort(); }} /// <summary> /// listView1.ListViewItemSorter的排序器(自定义) /// </summary> public class MySorter:IComparer { private Comparer comparer; private int sortColumn; private SortOrder sortOrder; public MySorter() { sortColumn=0; sortOrder=SortOrder.None; comparer=Comparer.Default; } /// <summary> /// 指定进行排序的列 /// </summary> public int SortColumn { get {return sortColumn;} set {sortColumn=value;} } /// <summary> /// 指定按升序或降序进行排序 /// </summary> 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; } } 啊噢,只找到个 listview的,应该差不多吧 http://msdn2.microsoft.com/zh-CN/library/hwf94875.aspx//看看这个吧 请问有没有互为Key的字典类型? winform下画图 学C#编程一定要学编译原理吗?(新手提问) Session问题请教!高手帮忙.... 请问:如何在C#中打开已经关联的文档,比如一个PDF文件? 有关windows程序数据传输的问题! 关于控件的小问题 关于 hoot 系统钩子的问题 c# 打开水晶报表时显示“未将对象引用设置到对象的实例”,只有10分,全部送出 Message的问题~! 关于符号控制问题 winform中如何在启动应用程序时判断本机是否连接上网。
我给你 贴点代码,有不明白的地方 发消息给我
MySorter sorter=new MySorter();
lswBase.ListViewItemSorter=sorter;private void lswBase_ColumnClick(object sender, System.Windows.Forms.ColumnClickEventArgs e)
{
if(lswBase.Items.Count!=0)
{
if (e.Column==sorter.SortColumn)
{
if (sorter.SortOrder==SortOrder.Ascending)
sorter.SortOrder=SortOrder.Descending;
else
if (sorter.SortOrder==SortOrder.Descending)
sorter.SortOrder=SortOrder.Ascending;
else
return;
}
else
{
sorter.SortColumn=e.Column;
}
this.lswBase.Sort();
}
}
/// listView1.ListViewItemSorter的排序器(自定义)
/// </summary>
public class MySorter:IComparer
{
private Comparer comparer;
private int sortColumn;
private SortOrder sortOrder;
public MySorter()
{
sortColumn=0;
sortOrder=SortOrder.None;
comparer=Comparer.Default;
}
/// <summary>
/// 指定进行排序的列
/// </summary>
public int SortColumn
{
get {return sortColumn;}
set {sortColumn=value;}
}
/// <summary>
/// 指定按升序或降序进行排序
/// </summary>
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;
}
}
//看看这个吧