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

溫馨提示×

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
焦作市| 清流县| 麻城市| 巩留县| 霸州市| 浙江省| 大港区| 永善县| 兰考县| 柏乡县| 沙坪坝区| 贵溪市| 桃园县| 色达县| 内丘县| 湖北省| 水城县| 乌审旗| 揭东县| 平南县| 屏东县| 宕昌县| 和静县| 龙江县| 高邮市| 阜宁县| 襄汾县| 绥中县| 裕民县| 洛扎县| 四川省| 广饶县| 翼城县| 福海县| 建瓯市| 平山县| 南江县| 宁安市| 应城市| 石嘴山市| 石狮市|