91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

在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
桐庐县| 赤壁市| 饶阳县| 扶余县| 莒南县| 浮梁县| 苗栗市| 武隆县| 大庆市| 巴东县| 临沧市| 额济纳旗| 邵东县| 怀柔区| 苍南县| 信宜市| 昌都县| 台南市| 龙江县| 尚义县| 晋中市| 浮山县| 昌吉市| 新津县| 商河县| 古交市| 读书| 涪陵区| 德安县| 鲜城| 湘乡市| 丹阳市| 鹤庆县| 扬州市| 攀枝花市| 法库县| 芒康县| 五常市| 枝江市| 通道| 监利县|