亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

在C#中怎樣快速實現ListView排序

c#
小樊
83
2024-09-11 02:51:38
欄目: 編程語言

在C#中,可以使用ListView的ColumnClick事件和ListViewItemSorter屬性來實現ListView的排序功能

  1. 首先,需要創建一個自定義的比較器類,該類繼承自IComparer接口。這個類將用于比較兩個ListViewItem對象。
using System.Collections;
using System.Windows.Forms;

public class ListViewItemComparer : IComparer
{
    private int _columnIndex;
    private SortOrder _sortOrder;

    public ListViewItemComparer(int columnIndex, SortOrder sortOrder)
    {
        _columnIndex = columnIndex;
        _sortOrder = sortOrder;
    }

    public int Compare(object x, object y)
    {
        ListViewItem itemX = (ListViewItem)x;
        ListViewItem itemY = (ListViewItem)y;

        string textX = itemX.SubItems[_columnIndex].Text;
        string textY = itemY.SubItems[_columnIndex].Text;

        int result = string.Compare(textX, textY);

        if (_sortOrder == SortOrder.Descending)
            return -result;
        else
            return result;
    }
}
  1. 在你的Form類中,為ListView控件添加ColumnClick事件處理程序。
public partial class MyForm : Form
{
    private int _sortColumnIndex = -1;

    public MyForm()
    {
        InitializeComponent();
        listView1.ColumnClick += ListView1_ColumnClick;
    }

    private void ListView1_ColumnClick(object sender, ColumnClickEventArgs e)
    {
        // 如果已經按照當前列進行了排序,則反轉排序順序
        if (e.Column == _sortColumnIndex)
        {
            listView1.Sorting = listView1.Sorting == SortOrder.Ascending ? SortOrder.Descending : SortOrder.Ascending;
        }
        else
        {
            // 否則,按照新列進行升序排序
            listView1.Sorting = SortOrder.Ascending;
            _sortColumnIndex = e.Column;
        }

        // 設置ListViewItemSorter屬性以實現排序
        listView1.ListViewItemSorter = new ListViewItemComparer(e.Column, listView1.Sorting);
    }
}

現在,當用戶點擊ListView的任何列標題時,將按照該列的文本內容進行排序。如果用戶再次點擊相同的列標題,將反轉排序順序。

0
太保市| 察雅县| 洛隆县| 辽中县| 象山县| 方山县| 酉阳| 宁河县| 瓮安县| 靖安县| 台北县| 郴州市| 桑日县| 龙海市| 卓尼县| 新安县| 库车县| 温州市| 田林县| 堆龙德庆县| 资源县| 长沙市| 垫江县| 晋宁县| 龙陵县| 利川市| 永福县| 南阳市| 永康市| 浮山县| 拜城县| 资兴市| 集贤县| 民乐县| 惠来县| 肇源县| 色达县| 四平市| 白玉县| 山丹县| 明水县|