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

溫馨提示×

C#中如何對ListView進行排序

c#
小樊
85
2024-09-11 02:42:22
欄目: 編程語言

在C#中,對ListView控件進行排序可以通過實現IComparer接口來完成

  1. 首先,創建一個自定義的比較器類,實現IComparer接口:
using System.Collections;

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;

        int result = string.Compare(itemX.SubItems[_columnIndex].Text, itemY.SubItems[_columnIndex].Text);

        if (_sortOrder == SortOrder.Descending)
            return -result;
        else
            return result;
    }
}
  1. 在你的主窗體代碼中,為ListView控件添加一個列表項點擊事件處理程序:
private void listView_ColumnClick(object sender, ColumnClickEventArgs e)
{
    ListView listView = (ListView)sender;
    SortOrder sortOrder = SortOrder.Ascending;

    // 如果已經按照這一列排序,則反轉排序順序
    if (listView.Sorting == SortOrder.Ascending)
    {
        sortOrder = SortOrder.Descending;
    }

    // 使用自定義的比較器對ListView進行排序
    listView.ListViewItemSorter = new ListViewItemComparer(e.Column, sortOrder);
    listView.Sort();
}
  1. 最后,將上面的事件處理程序與你的ListView控件關聯起來。你可以在設計器中為ListView的ColumnClick事件選擇listView_ColumnClick,或者在代碼中手動關聯:
public Form1()
{
    InitializeComponent();

    // 關聯ListView的ColumnClick事件
    this.listView.ColumnClick += listView_ColumnClick;
}

現在,當你點擊ListView的任意列標題時,它將根據該列的內容進行升序或降序排序。每次點擊同一列標題時,排序順序將在升序和降序之間切換。

0
河间市| 喜德县| 绥棱县| 依安县| 尼勒克县| 阆中市| 桑日县| 洱源县| 元朗区| 明光市| 潼南县| 卢龙县| 淅川县| 秦安县| 丰都县| 凤冈县| 湘阴县| 静宁县| 滨州市| 礼泉县| 怀安县| 阳原县| 庄浪县| 三江| 勐海县| 金乡县| 什邡市| 龙里县| 团风县| 密山市| 鹿泉市| 三穗县| 和田市| 怀柔区| 齐齐哈尔市| 河池市| 虎林市| 北票市| 犍为县| 白朗县| 泰来县|