打印本文 打印本文 关闭窗口 关闭窗口
使用vb.net 对 Windows Form 按列排序 ListView 项目
作者:武汉SEO闵涛  文章来源:敏韬网  点击数8100  更新时间:2009/4/23 19:00:36  文章录入:mintao  责任编辑:mintao

End Sub

//C#

private void listView1_ColumnClick(object sender,

                           System.Windows.Forms.ColumnClickEventArgs e)

{

    // Determine whether the column is the same as the last column clicked.

    if (e.Column != sortColumn)

    {

        // Set the sort column to the new column.

        sortColumn = e.Column;

        // Set the sort order to ascending by default.

        listView1.Sorting = SortOrder.Ascending;

    }

    else

    {

        // Determine what the last sort order was and change it.

        if (listView1.Sorting == SortOrder.Ascending)

            listView1.Sorting = SortOrder.Descending;

        else

            listView1.Sorting = SortOrder.Ascending;

    }

    // Call the sort method to manually sort.

    listView1.Sort();

    // Set the ListViewItemSorter property to a new ListViewItemComparer

    // object.

    this.listView1.ListViewItemSorter = new ListViewItemComparer(e.Column,

                                                      listView1.Sorting);

}

该代码在设置 ListViewItemSorter 属性和调用 Sort 方法之前添加了一些逻辑。增加的代码确定当前单击的项目与上一次已经单击过的列是否相同。如果不同,就会设置 sortColumn 变量,并且将 SortOrder.Ascending 值分配给 Sorting 属性。如果 sortColumn 变量和当前单击的列相同,则 Sorting 属性将更改为相反的排序顺序。在这个示例中,Sorting 属性用作定义项目排序顺序的方法。因为您在使用自定义的比较程序类来排序项目,所以设置 Sorting 属性对排序操作没有任何影响。在该示例中,它只是简单地用作一个变量。

在指定排序顺序后,对 ColumnClick 事件处理方法代码的唯一其他更改就是将附加参数值添加到 ListViewItemComparer 对象的创建中,而该对象是您要分配到 ListViewItemSorter

上一页  [1] [2] [3] [4] [5] [6] [7] [8] [9] [10]  下一页

打印本文 打印本文 关闭窗口 关闭窗口