中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

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
汉中市| 迁西县| 荔浦县| 石嘴山市| 左贡县| 防城港市| 崇仁县| 司法| 武冈市| 怀来县| 桂平市| 镇赉县| 霞浦县| 沐川县| 巴林右旗| 武陟县| 略阳县| 黄骅市| 佳木斯市| 綦江县| 永胜县| 丰宁| 乃东县| 台东市| 乐都县| 旬阳县| 盐亭县| 宜黄县| 安庆市| 长治县| 阿拉尔市| 习水县| 新乡县| 友谊县| 靖边县| 合山市| 托克托县| 岐山县| 勃利县| 南华县| 崇仁县|