天天看点

在Winform中如何实现ListView排序

Winform 中的 ListView 排序是一种常用的功能,下面是例子代码,放上来留个备份

在Winform中如何实现ListView排序

using  System;

在Winform中如何实现ListView排序

using  System.Windows.Forms;

在Winform中如何实现ListView排序

using  System.Drawing;

在Winform中如何实现ListView排序

using  System.Collections;

在Winform中如何实现ListView排序
在Winform中如何实现ListView排序

namespace  ListViewSortFormNamespace

在Winform中如何实现ListView排序
在Winform中如何实现ListView排序

... { 

在Winform中如何实现ListView排序

    public class ListViewSortForm : Form

在Winform中如何实现ListView排序
在Winform中如何实现ListView排序

    ...{

在Winform中如何实现ListView排序

        private ListView listView1;

在Winform中如何实现ListView排序
在Winform中如何实现ListView排序

        public ListViewSortForm()

在Winform中如何实现ListView排序
在Winform中如何实现ListView排序

        ...{

在Winform中如何实现ListView排序
在Winform中如何实现ListView排序

            ListViewItem listViewItem1 = new ListViewItem(new string[] ...{"Banana","a","b","c"}, -1, Color.Empty, Color.Yellow, null);

在Winform中如何实现ListView排序
在Winform中如何实现ListView排序

            ListViewItem listViewItem2 = new ListViewItem(new string[] ...{"Cherry","v","g","t"}, -1, Color.Empty, Color.Red, new Font("Microsoft Sans Serif", 8.25F, FontStyle.Regular, GraphicsUnit.Point, ((System.Byte)(0))));

在Winform中如何实现ListView排序
在Winform中如何实现ListView排序

            ListViewItem listViewItem3 = new ListViewItem(new string[] ...{"Apple","h","j","n"}, -1, Color.Empty, Color.Lime, null);

在Winform中如何实现ListView排序
在Winform中如何实现ListView排序

            ListViewItem listViewItem4 = new ListViewItem(new string[] ...{"Pear","y","u","i"}, -1, Color.Empty, Color.FromArgb(((System.Byte)(192)), ((System.Byte)(128)), ((System.Byte)(156))), null);

在Winform中如何实现ListView排序
在Winform中如何实现ListView排序

            this.listView1 = new ListView();

在Winform中如何实现ListView排序
在Winform中如何实现ListView排序

            this.listView1.Sorting = SortOrder.None;

在Winform中如何实现ListView排序

            this.listView1.View = View.Details;

在Winform中如何实现ListView排序

            this.listView1.Columns.Add(new ColumnHeader());

在Winform中如何实现ListView排序

            this.listView1.Columns[0].Text = "Column 1";

在Winform中如何实现ListView排序

            this.listView1.Columns[0].Width = 100;

在Winform中如何实现ListView排序

            listView1.Columns.Add(new ColumnHeader());

在Winform中如何实现ListView排序

            listView1.Columns[1].Text = "Column 2";

在Winform中如何实现ListView排序

            listView1.Columns.Add(new ColumnHeader());

在Winform中如何实现ListView排序

            listView1.Columns[2].Text = "Column 3";

在Winform中如何实现ListView排序

            listView1.Columns.Add(new ColumnHeader());

在Winform中如何实现ListView排序

            listView1.Columns[3].Text = "Column 4";

在Winform中如何实现ListView排序

            this.SuspendLayout();

在Winform中如何实现ListView排序
在Winform中如何实现ListView排序

            this.listView1.Items.AddRange(new ListViewItem[] ...{listViewItem1,

在Winform中如何实现ListView排序

                listViewItem2,

在Winform中如何实现ListView排序

                listViewItem3,

在Winform中如何实现ListView排序

                listViewItem4});

在Winform中如何实现ListView排序

            this.listView1.Location = new Point(10, 10);

在Winform中如何实现ListView排序

            this.listView1.Name = "listView1";

在Winform中如何实现ListView排序

            this.listView1.Size = new Size(300, 100);

在Winform中如何实现ListView排序

            this.listView1.TabIndex = 0;

在Winform中如何实现ListView排序

            this.listView1.LabelEdit = true;

在Winform中如何实现ListView排序

            this.listView1.ColumnClick += new ColumnClickEventHandler(ColumnClick);

在Winform中如何实现ListView排序
在Winform中如何实现ListView排序

            this.ClientSize = new Size(400, 400);

在Winform中如何实现ListView排序
在Winform中如何实现ListView排序

            this.Controls.AddRange(new Control[] ...{this.listView1});

在Winform中如何实现ListView排序

            this.Name = "ListViewSortForm";

在Winform中如何实现ListView排序

            this.Text = "Sorted ListView Control";

在Winform中如何实现ListView排序

            this.ResumeLayout(false);

在Winform中如何实现ListView排序

        }

在Winform中如何实现ListView排序
在Winform中如何实现ListView排序
在Winform中如何实现ListView排序

        // ColumnClick event handler.

在Winform中如何实现ListView排序

        private void ColumnClick(object o, ColumnClickEventArgs e)

在Winform中如何实现ListView排序
在Winform中如何实现ListView排序

        ...{

在Winform中如何实现ListView排序

            this.listView1.ListViewItemSorter = new ListViewItemComparer(e.Column);

在Winform中如何实现ListView排序

        }

在Winform中如何实现ListView排序
在Winform中如何实现ListView排序

        [System.STAThreadAttribute()]

在Winform中如何实现ListView排序

        public static void Main()

在Winform中如何实现ListView排序
在Winform中如何实现ListView排序

        ...{

在Winform中如何实现ListView排序

            Application.Run(new ListViewSortForm());

在Winform中如何实现ListView排序

        }

在Winform中如何实现ListView排序
在Winform中如何实现ListView排序

    }

在Winform中如何实现ListView排序
在Winform中如何实现ListView排序

    // 自定义排序算法

在Winform中如何实现ListView排序

    class ListViewItemComparer : IComparer

在Winform中如何实现ListView排序
在Winform中如何实现ListView排序

    ...{

在Winform中如何实现ListView排序

        private int col;

在Winform中如何实现ListView排序

        public ListViewItemComparer()

在Winform中如何实现ListView排序
在Winform中如何实现ListView排序

        ...{

在Winform中如何实现ListView排序

            col = 0;

在Winform中如何实现ListView排序

        }

在Winform中如何实现ListView排序

        public ListViewItemComparer(int column)

在Winform中如何实现ListView排序
在Winform中如何实现ListView排序

        ...{

在Winform中如何实现ListView排序

            col = column;

在Winform中如何实现ListView排序

        }

在Winform中如何实现ListView排序

        public int Compare(object x, object y)

在Winform中如何实现ListView排序
在Winform中如何实现ListView排序

        ...{

在Winform中如何实现ListView排序

            return String.Compare(((ListViewItem)x).SubItems[col].Text, ((ListViewItem)y).SubItems[col].Text);

在Winform中如何实现ListView排序

        }

在Winform中如何实现ListView排序

    }

在Winform中如何实现ListView排序
在Winform中如何实现ListView排序

}

在Winform中如何实现ListView排序