亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

C#:ListView控件如何實現點擊列表頭進行排序?

2019-11-17 03:19:26
字體:
來源:轉載
供稿:網友

C#:ListView控件如何實現點擊列表頭進行排序?

using System;using System.Collections;using System.Windows.Forms;namespace Common{    /// <summary>    /// 對ListView點擊列標題自動排序功能    /// </summary>    public class ListViewHelper    {        /// <summary>        /// 構造函數        /// </summary>        public ListViewHelper()        {            //            // TODO: 在此處添加構造函數邏輯            //        }        public static void ListView_ColumnClick(object sender, System.Windows.Forms.ColumnClickEventArgs e)        {            System.Windows.Forms.ListView lv = sender as System.Windows.Forms.ListView;            // 檢查點擊的列是不是現在的排序列.            if (e.Column == (lv.ListViewItemSorter as ListViewColumnSorter).SortColumn)            {                // 重新設置此列的排序方法.                if ((lv.ListViewItemSorter as ListViewColumnSorter).Order == System.Windows.Forms.SortOrder.Ascending)                {                    (lv.ListViewItemSorter as ListViewColumnSorter).Order = System.Windows.Forms.SortOrder.Descending;                }                else                {                    (lv.ListViewItemSorter as ListViewColumnSorter).Order = System.Windows.Forms.SortOrder.Ascending;                }            }            else            {                // 設置排序列,默認為正向排序                (lv.ListViewItemSorter as ListViewColumnSorter).SortColumn = e.Column;                (lv.ListViewItemSorter as ListViewColumnSorter).Order = System.Windows.Forms.SortOrder.Ascending;            }            // 用新的排序方法對ListView排序            ((System.Windows.Forms.ListView)sender).Sort();        }    }    /// <summary>    /// 繼承自IComparer    /// </summary>    public class ListViewColumnSorter : System.Collections.IComparer    {        /// <summary>        /// 指定按照哪個列排序        /// </summary>        PRivate int ColumnToSort;        /// <summary>        /// 指定排序的方式        /// </summary>        private System.Windows.Forms.SortOrder OrderOfsort;        /// <summary>        /// 聲明CaseInsensitiveComparer類對象        /// </summary>        private System.Collections.CaseInsensitiveComparer ObjectCompare;        /// <summary>        /// 構造函數        /// </summary>        public ListViewColumnSorter()        {            // 默認按第一列排序            ColumnToSort = 0;            // 排序方式為不排序            OrderOfSort = System.Windows.Forms.SortOrder.None;            // 初始化CaseInsensitiveComparer類對象            ObjectCompare = new System.Collections.CaseInsensitiveComparer();        }        /// <summary>        /// 重寫IComparer接口.        /// </summary>        /// <param name="x">要比較的第一個對象</param>        /// <param name="y">要比較的第二個對象</param>        /// <returns>比較的結果.如果相等返回0,如果x大于y返回1,如果x小于y返回-1</returns>        public int Compare(object x, object y)        {            int compareResult;            System.Windows.Forms.ListViewItem listviewX, listviewY;            // 將比較對象轉換為ListViewItem對象            listviewX = (System.Windows.Forms.ListViewItem)x;            listviewY = (System.Windows.Forms.ListViewItem)y;            string xText = listviewX.SubItems[ColumnToSort].Text;            string yText = listviewY.SubItems[ColumnToSort].Text;            int xInt, yInt;            // 比較,如果值為ip地址,則根據IP地址的規則排序。            if (IsIP(xText) && IsIP(yText))            {                compareResult = CompareIp(xText, yText);            }            else if (int.TryParse(xText, out xInt) && int.TryParse(yText, out yInt)) //是否全為數字            {                //比較數字                compareResult = CompareInt(xInt, yInt);            }            else            {                //比較對象                compareResult = ObjectCompare.Compare(xText, yText);            }            // 根據上面的比較結果返回正確的比較結果            if (OrderOfSort == System.Windows.Forms.SortOrder.Ascending)            {                // 因為是正序排序,所以直接返回結果                return compareResult;            }            else if (OrderOfSort == System.Windows.Forms.SortOrder.Descending)            {                // 如果是反序排序,所以要取負值再返回                return (-compareResult);            }            else            {                // 如果相等返回0                return 0;            }        }        /// <summary>        /// 判斷是否為正確的IP地址,IP范圍(0.0.0.0~255.255.255)        /// </summary>        /// <param name="ip">需驗證的IP地址</param>        /// <returns></returns>        public bool IsIP(String ip)        {            return System.Text.RegularExpressions.Regex.Match(ip, @"^(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)/.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)/.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)/.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[0-9])$").Success;        }        /// <summary>        /// 比較兩個數字的大小        /// </summary>        /// <param name="ipx">要比較的第一個對象</param>        /// <param name="ipy">要比較的第二個對象</param>        /// <returns>比較的結果.如果相等返回0,如果x大于y返回1,如果x小于y返回-1</returns>        private int CompareInt(int x, int y)        {            if (x > y)            {                return 1;            }            else if (x < y)            {                return -1;            }            else            {                return 0;            }        }        /// <summary>        /// 比較兩個IP地址的大小        /// </summary>        /// <param name="ipx">要比較的第一個對象</param>        /// <param name="ipy">要比較的第二個對象</param>        /// <returns>比較的結果.如果相等返回0,如果x大于y返回1,如果x小于y返回-1</returns>        private int CompareIp(string ipx, string ipy)        {            string[] ipxs = ipx.Split('.');            string[] ipys = ipy.Split('.');            for (int i = 0; i < 4; i++)            {                if (Convert.ToInt32(ipxs[i]) > Convert.ToInt32(ipys[i]))                {                    return 1;                }                else if (Convert.ToInt32(ipxs[i]) < Convert.ToInt32(ipys[i]))                {                    return -1;                }                else                {                    continue;                }            }            return 0;        }        /// <summary>        /// 獲取或設置按照哪一列排序.        /// </summary>        public int SortColumn        {            set            {                ColumnToSort = value;            }            get            {                return ColumnToSort;            }        }        /// <summary>        /// 獲取或設置排序方式.        /// </summary>        public System.Windows.Forms.SortOrder Order        {            set            {                OrderOfSort = value;            }            get            {                return OrderOfSort;            }        }    }}

以上代碼封裝后無須更改,在窗體中添加一個ListView控件,在窗體的Load事件中添加如下代碼:

private void Form1_Load(object sender, EventArgs e){    this.listView1.ListViewItemSorter = new Common.ListViewColumnSorter();    this.listView1.ColumnClick += new ColumnClickEventHandler(Common.ListViewHelper.ListView_ColumnClick);}

相關文章:淺談WinForm下ListView的擴展(一):單擊列頭實現排序

轉載自:http://bbs.csdn.net/topics/350071962


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品96久久久久久| 成人黄在线观看| 日韩免费观看高清| 亚洲成人av在线| 91精品视频在线看| 久久人人爽人人爽人人片亚洲| 欧美激情亚洲一区| 久久久久久久久久久免费| 久久免费视频网站| 中文字幕日韩精品在线| 精品欧美国产一区二区三区| 国产一区二区三区在线视频| 国产亚洲激情在线| 7777精品视频| 亚洲毛片在线观看| 亚洲人成伊人成综合网久久久| 欧美成人小视频| 久久夜色撩人精品| 亚洲美女激情视频| 在线观看国产成人av片| 欧美激情视频在线观看| 欧美在线观看一区二区三区| 国产精品吴梦梦| 91国产美女在线观看| 26uuu久久噜噜噜噜| 国产91在线播放精品91| 亚洲风情亚aⅴ在线发布| 日韩亚洲欧美中文高清在线| 九九久久久久99精品| 亚洲欧洲中文天堂| 91中文精品字幕在线视频| 国产一区欧美二区三区| 成人免费观看49www在线观看| 国产成人精品视频在线观看| 日韩二区三区在线| 亚洲国产福利在线| 久久久女女女女999久久| 国产一区二区在线免费视频| 亚洲免费电影在线观看| 中文字幕在线观看日韩| 国产欧美精品xxxx另类| 欧美成人精品在线播放| 98视频在线噜噜噜国产| 欧美性受xxxx白人性爽| 国内精品视频在线| 亚洲人成在线电影| 成人a视频在线观看| 国产成人jvid在线播放| 色综合久久中文字幕综合网小说| 亚洲国产精品嫩草影院久久| 日韩精品在线观看一区| 性日韩欧美在线视频| 亚洲伊人久久大香线蕉av| 亚洲аv电影天堂网| 国产精品久久一区| 久久99视频免费| 91精品一区二区| 欧美成年人视频网站欧美| 欧美日韩黄色大片| 亚洲自拍偷拍色片视频| 欧美大片在线看免费观看| 久久精品精品电影网| 国产99久久久欧美黑人| 91免费看视频.| xxx成人少妇69| 亚洲欧美激情视频| 91精品国产综合久久久久久蜜臀| 日韩电影免费在线观看中文字幕| 欧美xxxx18国产| 欧美成人精品影院| 欧美激情精品久久久久久| 亚洲新中文字幕| 中文字幕精品一区久久久久| 久久琪琪电影院| 亚洲精品久久久久久久久| 欧美一级成年大片在线观看| www.亚洲天堂| 欧美性猛交xxxx乱大交| 青青精品视频播放| 国产午夜精品视频| 黑人巨大精品欧美一区二区免费| 欧美日韩免费观看中文| 91wwwcom在线观看| 欧美国产精品人人做人人爱| 国产精品电影久久久久电影网| 久久国内精品一国内精品| 日韩精品在线免费观看视频| 尤物99国产成人精品视频| 日韩人体视频一二区| 久久影院免费观看| 国产日韩欧美电影在线观看| 久久久国产一区二区三区| 91精品国产综合久久男男| 精品久久久久久| 国产成人在线播放| 欧美第一淫aaasss性| 亚洲成人精品久久久| 亚洲国产精品yw在线观看| 日韩欧美国产视频| 亚洲日本成人网| 日韩高清电影免费观看完整| 伊人亚洲福利一区二区三区| 国产精品直播网红| 91精品视频在线播放| 综合欧美国产视频二区| 国产在线观看91精品一区| 97色伦亚洲国产| 狠狠久久五月精品中文字幕| 91精品国产91久久久久福利| 性欧美办公室18xxxxhd| 91系列在线观看| 日韩欧美一区二区三区久久| 伊人青青综合网站| 成人妇女淫片aaaa视频| 国产精品久久久久久亚洲影视| 国产乱人伦真实精品视频| 国产有码一区二区| 国产盗摄xxxx视频xxx69| 久久6精品影院| 欧美性理论片在线观看片免费| 国产视频精品一区二区三区| 欧美激情国产日韩精品一区18| 91九色在线视频| 久久精品视频在线| 国产精品欧美日韩一区二区| 国产精品一区电影| 成人午夜两性视频| 国产欧美一区二区三区视频| 成人自拍性视频| 亚洲精品一区中文字幕乱码| 日本aⅴ大伊香蕉精品视频| 亚洲黄页视频免费观看| 亚洲无限乱码一二三四麻| 国产欧美亚洲视频| 久久99精品视频一区97| 亚洲专区在线视频| 欧美日韩亚洲成人| 狠狠综合久久av一区二区小说| 欧美成年人视频| 青青草原一区二区| 午夜精品久久久久久99热软件| 亚洲娇小xxxx欧美娇小| 日韩av一区二区在线观看| 最近免费中文字幕视频2019| 色综合伊人色综合网| 亚洲午夜av电影| 成人黄色生活片| 中文欧美日本在线资源| 日韩激情av在线免费观看| 伊人久久久久久久久久久久久| 亚洲白虎美女被爆操| 中文字幕亚洲专区| 91在线国产电影| 91精品国产综合久久香蕉的用户体验| 欧美视频二区36p| 国产精品一区二区久久久| 日韩毛片中文字幕| 亚洲一区二区三区乱码aⅴ蜜桃女| 亚洲91精品在线观看| 亚洲视频在线观看网站| 久久久噜噜噜久噜久久| 久久久久这里只有精品| 欧美日韩亚洲成人| 亚洲国产精品大全|