listview排序问题。请问如何按第二列进行排序(默认是第一列)
public Form1()
{
InitializeComponent();
listView1.ColumnClick += new ColumnClickEventHandler(button4_Click);
listView2.ColumnClick += new ColumnClickEventHandler(button6_Click);
}
private void button1_Click(object sender, EventArgs e)
{
if (listView1.Sorting == SortOrder.Ascending)
{
listView1.Sorting = SortOrder.Descending;
}
else
{
listView1.Sorting = SortOrder.Ascending;
}
}
这是我用的方法,是点击button1后按第一列进行排序仅供参考。
现在我想实现点击button2之后,按第二列进行排序,请问应该怎么操作?
------解决方案--------------------
自己写一个比较器,然后传给listview1的ListViewItemSorter。
写法参考
http://msdn.microsoft.com/zh-cn/library/system.windows.forms.listview.listviewitemsorter(v=vs.80).aspx
代码示例中的类可以直接用
listview1.ListViewItemSorter = new ListViewItemComparer(x); //x表示用第几列排序
这个代码有点缺憾就是它按照字符顺序排列,比如 1 100 101 2 3 4 ...,如果你要按照 1 2 3 4 ... 100 101 ... 排序,就要修改下。