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

    End Function

End Class

//C#

// Implements the manual sorting of items by columns.

class ListViewItemComparer : IComparer {

    private int col;

    private SortOrder order;

    public ListViewItemComparer() {

        col=0;

        order = SortOrder.Ascending;

    }

    public ListViewItemComparer(int column, SortOrder order)

    {

        col=column;

        this.order = order;

    }

    public int Compare(object x, object y)

    {

        int returnVal= -1;

        returnVal = String.Compare(((ListViewItem)x).SubItems[col].Text,

                                ((ListViewItem)y).SubItems[col].Text);

        // Determine whether the sort order is descending.

        if(order == SortOrder.Descending)

            // Invert the value returned by String.Compare.

            returnVal *= -1

        return returnVal;

    }

}33

该代码将排序顺序参数添加到构造函数,并且创建一个用于存储该值的私有变量。Compare 方法的代码已更改,以便确定排序顺序是否为降序。如果是,则将String.Compare 方法的返回值乘以 -1 以更改该值,这样 Compare 方法返回的值就与 String.Compare 返回的值相反。

运行该代码并单击列。该列以升序顺序进行排列。单击相同的列,列就会以降序进行排序。同样,日期列没有正确的排序,因为它被存储为一个字符串而不是日期。在接下来的部分中,通过添加功能来按日期或者按字符串进行排序(这取决于数据的类型),从而完成该示例。

排序日期

作为项目而置于 ListView 控件中的数据显示为文本并以文本的形式进行存储。这使得使用 IComparer 类中的 String.Compare 方法进行排序变得非常简单。String.Compare

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

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