<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://www.vbex.ru/index.php?action=history&amp;feed=atom&amp;title=VB.Net_Tutorial%2FGUI%2FListView_Sort</id>
		<title>VB.Net Tutorial/GUI/ListView Sort - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://www.vbex.ru/index.php?action=history&amp;feed=atom&amp;title=VB.Net_Tutorial%2FGUI%2FListView_Sort"/>
		<link rel="alternate" type="text/html" href="http://www.vbex.ru/index.php?title=VB.Net_Tutorial/GUI/ListView_Sort&amp;action=history"/>
		<updated>2026-04-05T22:04:23Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://www.vbex.ru/index.php?title=VB.Net_Tutorial/GUI/ListView_Sort&amp;diff=3922&amp;oldid=prev</id>
		<title> в 16:40, 26 мая 2010</title>
		<link rel="alternate" type="text/html" href="http://www.vbex.ru/index.php?title=VB.Net_Tutorial/GUI/ListView_Sort&amp;diff=3922&amp;oldid=prev"/>
				<updated>2010-05-26T16:40:30Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 16:40, 26 мая 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;text-align: center;&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
			</entry>

	<entry>
		<id>http://www.vbex.ru/index.php?title=VB.Net_Tutorial/GUI/ListView_Sort&amp;diff=3923&amp;oldid=prev</id>
		<title>Admin: 1 версия</title>
		<link rel="alternate" type="text/html" href="http://www.vbex.ru/index.php?title=VB.Net_Tutorial/GUI/ListView_Sort&amp;diff=3923&amp;oldid=prev"/>
				<updated>2010-05-26T12:57:30Z</updated>
		
		<summary type="html">&lt;p&gt;1 версия&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==ListView custom sort==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;vbnet&amp;quot;&amp;gt;&amp;quot;Visual Basic 2005 Programmer&amp;quot;s Reference&lt;br /&gt;
&amp;quot;by Rod Stephens (Author) &lt;br /&gt;
&amp;quot;# Publisher: Wrox (October 21, 2005)&lt;br /&gt;
&amp;quot;# Language: English&lt;br /&gt;
&amp;quot;# ISBN-10: 0764571982&lt;br /&gt;
&amp;quot;# ISBN-13: 978-0764571985&lt;br /&gt;
Imports System.Windows.Forms&lt;br /&gt;
Imports System.Collections&lt;br /&gt;
public class ListViewCustomSort&lt;br /&gt;
   public Shared Sub Main&lt;br /&gt;
        Application.Run(New Form1)&lt;br /&gt;
   End Sub&lt;br /&gt;
End class&lt;br /&gt;
Public Class Form1&lt;br /&gt;
    &amp;quot; The column currently used for sorting.&lt;br /&gt;
    Private m_SortingColumn As ColumnHeader&lt;br /&gt;
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load&lt;br /&gt;
        &amp;quot; Make the ListView column headers.&lt;br /&gt;
        ListViewMakeColumnHeaders(lvwBooks, _&lt;br /&gt;
            &amp;quot;Title&amp;quot;, HorizontalAlignment.Left, 120, _&lt;br /&gt;
            &amp;quot;URL&amp;quot;, HorizontalAlignment.Left, 120, _&lt;br /&gt;
            &amp;quot;ISBN&amp;quot;, HorizontalAlignment.Left, 90, _&lt;br /&gt;
            &amp;quot;Picture&amp;quot;, HorizontalAlignment.Left, 120, _&lt;br /&gt;
            &amp;quot;Pages&amp;quot;, HorizontalAlignment.Right, 50, _&lt;br /&gt;
            &amp;quot;Year&amp;quot;, HorizontalAlignment.Right, 40)&lt;br /&gt;
        ListViewMakeRow(lvwBooks, 0, _&lt;br /&gt;
            &amp;quot;Visual Basic and XML&amp;quot;, _&lt;br /&gt;
            &amp;quot;http://www.vb-helper.ru/xml.htm&amp;quot;, _&lt;br /&gt;
            &amp;quot;0-471-12060-X&amp;quot;, _&lt;br /&gt;
            &amp;quot;http://www.vb-helper.ru/xml.jpg&amp;quot;, _&lt;br /&gt;
            &amp;quot;503&amp;quot;, _&lt;br /&gt;
            &amp;quot;2002&amp;quot;)&lt;br /&gt;
        ListViewMakeRow(lvwBooks, 0, _&lt;br /&gt;
            &amp;quot;Visual Basic Graphics Programming, 2e&amp;quot;, _&lt;br /&gt;
            &amp;quot;http://www.vb-helper.ru/vbgp.htm&amp;quot;, _&lt;br /&gt;
            &amp;quot;0-471-35599-2&amp;quot;, _&lt;br /&gt;
            &amp;quot;http://www.vb-helper.ru/vbgp.jpg&amp;quot;, _&lt;br /&gt;
            &amp;quot;712&amp;quot;, _&lt;br /&gt;
            &amp;quot;2000&amp;quot;)&lt;br /&gt;
        ListViewMakeRow(lvwBooks, 0, _&lt;br /&gt;
            &amp;quot;Ready-to-Run Visual Basic Algorithms&amp;quot;, _&lt;br /&gt;
            &amp;quot;http://www.vb-helper.ru/vba.htm&amp;quot;, _&lt;br /&gt;
            &amp;quot;0-471-24268-3&amp;quot;, _&lt;br /&gt;
            &amp;quot;http://www.vb-helper.ru/vba.jpg&amp;quot;, _&lt;br /&gt;
            &amp;quot;395&amp;quot;, _&lt;br /&gt;
            &amp;quot;1998&amp;quot;)&lt;br /&gt;
        ListViewSizeColumns(lvwBooks, True)&lt;br /&gt;
        Text = &amp;quot;RunTimeListView (&amp;quot; &amp;amp; lvwBooks.View.ToString &amp;amp; &amp;quot;)&amp;quot;&lt;br /&gt;
    End Sub&lt;br /&gt;
    &amp;quot; Make the ListView&amp;quot;s column headers.&lt;br /&gt;
    &amp;quot; The ParamArray entries should be triples holding&lt;br /&gt;
    &amp;quot; column title, HorizontalAlignment value, and width.&lt;br /&gt;
    Private Sub ListViewMakeColumnHeaders(ByVal lvw As ListView, ByVal ParamArray header_info() As Object)&lt;br /&gt;
        &amp;quot; Remove any existing headers.&lt;br /&gt;
        lvw.Columns.Clear()&lt;br /&gt;
        &amp;quot; Make the column headers.&lt;br /&gt;
        For i As Integer = header_info.GetLowerBound(0) To header_info.GetUpperBound(0) Step 3&lt;br /&gt;
            Dim col_header As ColumnHeader = lvw.Columns.Add( _&lt;br /&gt;
                DirectCast(header_info(i), String), _&lt;br /&gt;
                -1, _&lt;br /&gt;
                DirectCast(header_info(i + 1), HorizontalAlignment))&lt;br /&gt;
            col_header.Width = DirectCast(header_info(i + 2), Integer)&lt;br /&gt;
        Next i&lt;br /&gt;
    End Sub&lt;br /&gt;
    &amp;quot; Make a ListView row.&lt;br /&gt;
    Private Sub ListViewMakeRow(ByVal lvw As ListView, ByVal image_index As Integer, ByVal item_title As String, ByVal ParamArray subitem_titles() As String)&lt;br /&gt;
        &amp;quot; Make the item.&lt;br /&gt;
        Dim new_item As ListViewItem = lvw.Items.Add(item_title)&lt;br /&gt;
        new_item.ImageIndex = image_index&lt;br /&gt;
        &amp;quot; Make the sub-items.&lt;br /&gt;
        For i As Integer = subitem_titles.GetLowerBound(0) To subitem_titles.GetUpperBound(0)&lt;br /&gt;
            new_item.SubItems.Add(subitem_titles(i))&lt;br /&gt;
        Next i&lt;br /&gt;
    End Sub&lt;br /&gt;
    &amp;quot; Set column widths to -1 to fit data,&lt;br /&gt;
    &amp;quot; -2 to fit data and header.&lt;br /&gt;
    Private Sub ListViewSizeColumns(ByVal lvw As ListView, ByVal allow_room_for_header As Boolean)&lt;br /&gt;
        Dim new_wid As Integer = -1&lt;br /&gt;
        If allow_room_for_header Then new_wid = -2&lt;br /&gt;
        &amp;quot; Set the width for each column.&lt;br /&gt;
        For i As Integer = 0 To lvw.Columns.Count - 1&lt;br /&gt;
            lvw.Columns(i).Width = new_wid&lt;br /&gt;
        Next i&lt;br /&gt;
    End Sub&lt;br /&gt;
    Private Sub mnuViewDetails_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuViewDetails.Click&lt;br /&gt;
        lvwBooks.View = View.Details&lt;br /&gt;
        Text = &amp;quot;RunTimeListView (&amp;quot; &amp;amp; lvwBooks.View.ToString &amp;amp; &amp;quot;)&amp;quot;&lt;br /&gt;
    End Sub&lt;br /&gt;
    Private Sub mnuViewLargeIcons_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuViewLargeIcons.Click&lt;br /&gt;
        lvwBooks.View = View.LargeIcon&lt;br /&gt;
        Text = &amp;quot;RunTimeListView (&amp;quot; &amp;amp; lvwBooks.View.ToString &amp;amp; &amp;quot;)&amp;quot;&lt;br /&gt;
    End Sub&lt;br /&gt;
    Private Sub mnuViewList_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuViewList.Click&lt;br /&gt;
        lvwBooks.View = View.List&lt;br /&gt;
        Text = &amp;quot;RunTimeListView (&amp;quot; &amp;amp; lvwBooks.View.ToString &amp;amp; &amp;quot;)&amp;quot;&lt;br /&gt;
    End Sub&lt;br /&gt;
    Private Sub mnuViewSmallIcons_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuViewSmallIcons.Click&lt;br /&gt;
        lvwBooks.View = View.SmallIcon&lt;br /&gt;
        Text = &amp;quot;RunTimeListView (&amp;quot; &amp;amp; lvwBooks.View.ToString &amp;amp; &amp;quot;)&amp;quot;&lt;br /&gt;
    End Sub&lt;br /&gt;
    Private Sub mnuViewTile_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuViewTile.Click&lt;br /&gt;
        lvwBooks.View = View.Tile&lt;br /&gt;
        Text = &amp;quot;RunTimeListView (&amp;quot; &amp;amp; lvwBooks.View.ToString &amp;amp; &amp;quot;)&amp;quot;&lt;br /&gt;
    End Sub&lt;br /&gt;
    &amp;quot; Sort using the clicked column.&lt;br /&gt;
    Private Sub lvwBooks_ColumnClick(ByVal sender As System.Object, _&lt;br /&gt;
     ByVal e As System.Windows.Forms.ColumnClickEventArgs) Handles lvwBooks.ColumnClick&lt;br /&gt;
        &amp;quot; Get the new sorting column.&lt;br /&gt;
        Dim new_sorting_column As ColumnHeader = _&lt;br /&gt;
            lvwBooks.Columns(e.Column)&lt;br /&gt;
        &amp;quot; Figure out the new sorting order.&lt;br /&gt;
        Dim sort_order As System.Windows.Forms.SortOrder&lt;br /&gt;
        If m_SortingColumn Is Nothing Then&lt;br /&gt;
            &amp;quot; New column. Sort ascending.&lt;br /&gt;
            sort_order = SortOrder.Ascending&lt;br /&gt;
        Else&lt;br /&gt;
            &amp;quot; See if this is the same column.&lt;br /&gt;
            If new_sorting_column.Equals(m_SortingColumn) Then&lt;br /&gt;
                &amp;quot; Same column. Switch the sort order.&lt;br /&gt;
                If m_SortingColumn.Text.StartsWith(&amp;quot;&amp;gt; &amp;quot;) Then&lt;br /&gt;
                    sort_order = SortOrder.Descending&lt;br /&gt;
                Else&lt;br /&gt;
                    sort_order = SortOrder.Ascending&lt;br /&gt;
                End If&lt;br /&gt;
            Else&lt;br /&gt;
                &amp;quot; New column. Sort ascending.&lt;br /&gt;
                sort_order = SortOrder.Ascending&lt;br /&gt;
            End If&lt;br /&gt;
            &amp;quot; Remove the old sort indicator.&lt;br /&gt;
            m_SortingColumn.Text = m_SortingColumn.Text.Substring(2)&lt;br /&gt;
        End If&lt;br /&gt;
        &amp;quot; Display the new sort order.&lt;br /&gt;
        m_SortingColumn = new_sorting_column&lt;br /&gt;
        If sort_order = SortOrder.Ascending Then&lt;br /&gt;
            m_SortingColumn.Text = &amp;quot;&amp;gt; &amp;quot; &amp;amp; m_SortingColumn.Text&lt;br /&gt;
        Else&lt;br /&gt;
            m_SortingColumn.Text = &amp;quot;&amp;lt; &amp;quot; &amp;amp; m_SortingColumn.Text&lt;br /&gt;
        End If&lt;br /&gt;
        &amp;quot; Create a comparer.&lt;br /&gt;
        lvwBooks.ListViewItemSorter = New ListViewComparer(e.Column, sort_order)&lt;br /&gt;
        &amp;quot; Sort.&lt;br /&gt;
        lvwBooks.Sort()&lt;br /&gt;
    End Sub&lt;br /&gt;
End Class&lt;br /&gt;
&amp;quot; Implements a comparer for ListView columns.&lt;br /&gt;
Public Class ListViewComparer&lt;br /&gt;
    Implements IComparer&lt;br /&gt;
    Private m_ColumnNumber As Integer&lt;br /&gt;
    Private m_SortOrder As SortOrder&lt;br /&gt;
    Public Sub New(ByVal column_number As Integer, ByVal sort_order As SortOrder)&lt;br /&gt;
        m_ColumnNumber = column_number&lt;br /&gt;
        m_SortOrder = sort_order&lt;br /&gt;
    End Sub&lt;br /&gt;
    &amp;quot; Compare the items in the appropriate column&lt;br /&gt;
    &amp;quot; for objects x and y.&lt;br /&gt;
    Public Function Compare(ByVal x As Object, ByVal y As Object) _&lt;br /&gt;
     As Integer Implements System.Collections.IComparer.rupare&lt;br /&gt;
        Dim item_x As ListViewItem = DirectCast(x, ListViewItem)&lt;br /&gt;
        Dim item_y As ListViewItem = DirectCast(y, ListViewItem)&lt;br /&gt;
        &amp;quot; Get the sub-item values.&lt;br /&gt;
        Dim string_x As String&lt;br /&gt;
        If item_x.SubItems.Count &amp;lt;= m_ColumnNumber Then&lt;br /&gt;
            string_x = &amp;quot;&amp;quot;&lt;br /&gt;
        Else&lt;br /&gt;
            string_x = item_x.SubItems(m_ColumnNumber).Text&lt;br /&gt;
        End If&lt;br /&gt;
        Dim string_y As String&lt;br /&gt;
        If item_y.SubItems.Count &amp;lt;= m_ColumnNumber Then&lt;br /&gt;
            string_y = &amp;quot;&amp;quot;&lt;br /&gt;
        Else&lt;br /&gt;
            string_y = item_y.SubItems(m_ColumnNumber).Text&lt;br /&gt;
        End If&lt;br /&gt;
        &amp;quot; Compare them.&lt;br /&gt;
        If m_SortOrder = SortOrder.Ascending Then&lt;br /&gt;
            Return String.rupare(string_x, string_y)&lt;br /&gt;
        Else&lt;br /&gt;
            Return String.rupare(string_y, string_x)&lt;br /&gt;
        End If&lt;br /&gt;
    End Function&lt;br /&gt;
End Class&lt;br /&gt;
&amp;lt;Global.Microsoft.VisualBasic.rupilerServices.DesignerGenerated()&amp;gt; _&lt;br /&gt;
Partial Public Class Form1&lt;br /&gt;
    Inherits System.Windows.Forms.Form&lt;br /&gt;
    &amp;quot;Form overrides dispose to clean up the component list.&lt;br /&gt;
    &amp;lt;System.Diagnostics.DebuggerNonUserCode()&amp;gt; _&lt;br /&gt;
    Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)&lt;br /&gt;
        If disposing AndAlso components IsNot Nothing Then&lt;br /&gt;
            components.Dispose()&lt;br /&gt;
        End If&lt;br /&gt;
        MyBase.Dispose(disposing)&lt;br /&gt;
    End Sub&lt;br /&gt;
    &amp;quot;Required by the Windows Form Designer&lt;br /&gt;
    Private components As System.ruponentModel.IContainer&lt;br /&gt;
    &amp;quot;NOTE: The following procedure is required by the Windows Form Designer&lt;br /&gt;
    &amp;quot;It can be modified using the Windows Form Designer.  &lt;br /&gt;
    &amp;quot;Do not modify it using the code editor.&lt;br /&gt;
    &amp;lt;System.Diagnostics.DebuggerStepThrough()&amp;gt; _&lt;br /&gt;
    Private Sub InitializeComponent()&lt;br /&gt;
        Me.ruponents = New System.ruponentModel.Container&lt;br /&gt;
        Me.MenuStrip1 = New System.Windows.Forms.MenuStrip&lt;br /&gt;
        Me.ViewToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem&lt;br /&gt;
        Me.mnuViewDetails = New System.Windows.Forms.ToolStripMenuItem&lt;br /&gt;
        Me.mnuViewLargeIcons = New System.Windows.Forms.ToolStripMenuItem&lt;br /&gt;
        Me.mnuViewList = New System.Windows.Forms.ToolStripMenuItem&lt;br /&gt;
        Me.mnuViewSmallIcons = New System.Windows.Forms.ToolStripMenuItem&lt;br /&gt;
        Me.mnuViewTile = New System.Windows.Forms.ToolStripMenuItem&lt;br /&gt;
        Me.imlSmall = New System.Windows.Forms.ImageList(Me.ruponents)&lt;br /&gt;
        Me.lvwBooks = New System.Windows.Forms.ListView&lt;br /&gt;
        Me.ColumnHeader3 = New System.Windows.Forms.ColumnHeader&lt;br /&gt;
        Me.ColumnHeader2 = New System.Windows.Forms.ColumnHeader&lt;br /&gt;
        Me.ColumnHeader1 = New System.Windows.Forms.ColumnHeader&lt;br /&gt;
        Me.MenuStrip1.SuspendLayout()&lt;br /&gt;
        Me.SuspendLayout()&lt;br /&gt;
        &amp;quot;&lt;br /&gt;
        &amp;quot;MenuStrip1&lt;br /&gt;
        &amp;quot;&lt;br /&gt;
        Me.MenuStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.ViewToolStripMenuItem})&lt;br /&gt;
        Me.MenuStrip1.Location = New System.Drawing.Point(0, 0)&lt;br /&gt;
        Me.MenuStrip1.Name = &amp;quot;MenuStrip1&amp;quot;&lt;br /&gt;
        Me.MenuStrip1.Size = New System.Drawing.Size(772, 24)&lt;br /&gt;
        Me.MenuStrip1.TabIndex = 1&lt;br /&gt;
        Me.MenuStrip1.Text = &amp;quot;MenuStrip1&amp;quot;&lt;br /&gt;
        &amp;quot;&lt;br /&gt;
        &amp;quot;ViewToolStripMenuItem&lt;br /&gt;
        &amp;quot;&lt;br /&gt;
        Me.ViewToolStripMenuItem.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.mnuViewDetails, Me.mnuViewLargeIcons, Me.mnuViewList, Me.mnuViewSmallIcons, Me.mnuViewTile})&lt;br /&gt;
        Me.ViewToolStripMenuItem.Name = &amp;quot;ViewToolStripMenuItem&amp;quot;&lt;br /&gt;
        Me.ViewToolStripMenuItem.Text = &amp;quot;&amp;amp;View&amp;quot;&lt;br /&gt;
        &amp;quot;&lt;br /&gt;
        &amp;quot;mnuViewDetails&lt;br /&gt;
        &amp;quot;&lt;br /&gt;
        Me.mnuViewDetails.Name = &amp;quot;mnuViewDetails&amp;quot;&lt;br /&gt;
        Me.mnuViewDetails.Text = &amp;quot;&amp;amp;Details&amp;quot;&lt;br /&gt;
        &amp;quot;&lt;br /&gt;
        &amp;quot;mnuViewLargeIcons&lt;br /&gt;
        &amp;quot;&lt;br /&gt;
        Me.mnuViewLargeIcons.Name = &amp;quot;mnuViewLargeIcons&amp;quot;&lt;br /&gt;
        Me.mnuViewLargeIcons.Text = &amp;quot;Large Icons&amp;quot;&lt;br /&gt;
        &amp;quot;&lt;br /&gt;
        &amp;quot;mnuViewList&lt;br /&gt;
        &amp;quot;&lt;br /&gt;
        Me.mnuViewList.Name = &amp;quot;mnuViewList&amp;quot;&lt;br /&gt;
        Me.mnuViewList.Text = &amp;quot;&amp;amp;List&amp;quot;&lt;br /&gt;
        &amp;quot;&lt;br /&gt;
        &amp;quot;mnuViewSmallIcons&lt;br /&gt;
        &amp;quot;&lt;br /&gt;
        Me.mnuViewSmallIcons.Name = &amp;quot;mnuViewSmallIcons&amp;quot;&lt;br /&gt;
        Me.mnuViewSmallIcons.Text = &amp;quot;&amp;amp;Small Icons&amp;quot;&lt;br /&gt;
        &amp;quot;&lt;br /&gt;
        &amp;quot;mnuViewTile&lt;br /&gt;
        &amp;quot;&lt;br /&gt;
        Me.mnuViewTile.Name = &amp;quot;mnuViewTile&amp;quot;&lt;br /&gt;
        Me.mnuViewTile.Text = &amp;quot;Tile&amp;quot;&lt;br /&gt;
        &amp;quot;&lt;br /&gt;
        &amp;quot;lvwBooks&lt;br /&gt;
        &amp;quot;&lt;br /&gt;
        Me.lvwBooks.Columns.AddRange(New System.Windows.Forms.ColumnHeader() {Me.ColumnHeader1, Me.ColumnHeader2, Me.ColumnHeader3})&lt;br /&gt;
        Me.lvwBooks.Dock = System.Windows.Forms.DockStyle.Fill&lt;br /&gt;
        Me.lvwBooks.Location = New System.Drawing.Point(0, 24)&lt;br /&gt;
        Me.lvwBooks.Name = &amp;quot;lvwBooks&amp;quot;&lt;br /&gt;
        Me.lvwBooks.Size = New System.Drawing.Size(772, 249)&lt;br /&gt;
        Me.lvwBooks.SmallImageList = Me.imlSmall&lt;br /&gt;
        Me.lvwBooks.TabIndex = 2&lt;br /&gt;
        Me.lvwBooks.View = System.Windows.Forms.View.Details&lt;br /&gt;
        &amp;quot;&lt;br /&gt;
        &amp;quot;ColumnHeader2&lt;br /&gt;
        &amp;quot;&lt;br /&gt;
        Me.ColumnHeader2.Text = &amp;quot;URL&amp;quot;&lt;br /&gt;
        &amp;quot;&lt;br /&gt;
        &amp;quot;ColumnHeader1&lt;br /&gt;
        &amp;quot;&lt;br /&gt;
        Me.ColumnHeader1.Text = &amp;quot;Title&amp;quot;&lt;br /&gt;
        &amp;quot;&lt;br /&gt;
        &amp;quot;Form1&lt;br /&gt;
        &amp;quot;&lt;br /&gt;
        Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)&lt;br /&gt;
        Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font&lt;br /&gt;
        Me.ClientSize = New System.Drawing.Size(772, 273)&lt;br /&gt;
        Me.Controls.Add(Me.lvwBooks)&lt;br /&gt;
        Me.Controls.Add(Me.MenuStrip1)&lt;br /&gt;
        Me.Name = &amp;quot;Form1&amp;quot;&lt;br /&gt;
        Me.Text = &amp;quot;ListViewCustomSort&amp;quot;&lt;br /&gt;
        Me.MenuStrip1.ResumeLayout(False)&lt;br /&gt;
        Me.ResumeLayout(False)&lt;br /&gt;
        Me.PerformLayout()&lt;br /&gt;
    End Sub&lt;br /&gt;
    Friend WithEvents MenuStrip1 As System.Windows.Forms.MenuStrip&lt;br /&gt;
    Friend WithEvents ViewToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem&lt;br /&gt;
    Friend WithEvents mnuViewDetails As System.Windows.Forms.ToolStripMenuItem&lt;br /&gt;
    Friend WithEvents mnuViewLargeIcons As System.Windows.Forms.ToolStripMenuItem&lt;br /&gt;
    Friend WithEvents mnuViewList As System.Windows.Forms.ToolStripMenuItem&lt;br /&gt;
    Friend WithEvents mnuViewSmallIcons As System.Windows.Forms.ToolStripMenuItem&lt;br /&gt;
    Friend WithEvents mnuViewTile As System.Windows.Forms.ToolStripMenuItem&lt;br /&gt;
    Friend WithEvents imlSmall As System.Windows.Forms.ImageList&lt;br /&gt;
    Friend WithEvents lvwBooks As System.Windows.Forms.ListView&lt;br /&gt;
    Friend WithEvents ColumnHeader3 As System.Windows.Forms.ColumnHeader&lt;br /&gt;
    Friend WithEvents ColumnHeader2 As System.Windows.Forms.ColumnHeader&lt;br /&gt;
    Friend WithEvents ColumnHeader1 As System.Windows.Forms.ColumnHeader&lt;br /&gt;
End Class&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Sort a listview==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;vbnet&amp;quot;&amp;gt;Imports System.Windows.Forms&lt;br /&gt;
public class ListViewSorting&lt;br /&gt;
   public Shared Sub Main&lt;br /&gt;
        Application.Run(New Form1)&lt;br /&gt;
   End Sub&lt;br /&gt;
End class&lt;br /&gt;
&lt;br /&gt;
Public Class Form1&lt;br /&gt;
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load&lt;br /&gt;
        Dim mycount As Integer&lt;br /&gt;
        mycount = listview1.Items.Count&lt;br /&gt;
        ToolStripStatusLabel1.Text = Str(mycount)&lt;br /&gt;
    End Sub&lt;br /&gt;
    Private Sub ListView1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ListView1.Click&lt;br /&gt;
        Dim i As Integer&lt;br /&gt;
        Dim mycount As Integer&lt;br /&gt;
        mycount = ListView1.Items.Count&lt;br /&gt;
        For i = 0 To mycount - 1&lt;br /&gt;
            If ListView1.Items(i).Selected = True Then&lt;br /&gt;
                ToolStripStatusLabel1.Text = ListView1.Items(i).Text + &amp;quot; selected&amp;quot;&lt;br /&gt;
                Exit For&lt;br /&gt;
            End If&lt;br /&gt;
        Next&lt;br /&gt;
    End Sub&lt;br /&gt;
    Private Sub RadioButton1_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton1.CheckedChanged&lt;br /&gt;
        ListView1.Sorting = SortOrder.Ascending&lt;br /&gt;
    End Sub&lt;br /&gt;
    Private Sub RadioButton2_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton2.CheckedChanged&lt;br /&gt;
        ListView1.Sorting = SortOrder.Descending&lt;br /&gt;
    End Sub&lt;br /&gt;
    Private Sub RadioButton3_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton3.CheckedChanged&lt;br /&gt;
        ListView1.Sorting = SortOrder.None&lt;br /&gt;
    End Sub&lt;br /&gt;
&lt;br /&gt;
End Class&lt;br /&gt;
&lt;br /&gt;
&amp;lt;Global.Microsoft.VisualBasic.rupilerServices.DesignerGenerated()&amp;gt; _&lt;br /&gt;
Partial Class Form1&lt;br /&gt;
    Inherits System.Windows.Forms.Form&lt;br /&gt;
    &amp;quot;Form overrides dispose to clean up the component list.&lt;br /&gt;
    &amp;lt;System.Diagnostics.DebuggerNonUserCode()&amp;gt; _&lt;br /&gt;
    Protected Overrides Sub Dispose(ByVal disposing As Boolean)&lt;br /&gt;
        If disposing AndAlso components IsNot Nothing Then&lt;br /&gt;
            components.Dispose()&lt;br /&gt;
        End If&lt;br /&gt;
        MyBase.Dispose(disposing)&lt;br /&gt;
    End Sub&lt;br /&gt;
    &amp;quot;Required by the Windows Form Designer&lt;br /&gt;
    Private components As System.ruponentModel.IContainer&lt;br /&gt;
    &amp;quot;NOTE: The following procedure is required by the Windows Form Designer&lt;br /&gt;
    &amp;quot;It can be modified using the Windows Form Designer.  &lt;br /&gt;
    &amp;quot;Do not modify it using the code editor.&lt;br /&gt;
    &amp;lt;System.Diagnostics.DebuggerStepThrough()&amp;gt; _&lt;br /&gt;
    Private Sub InitializeComponent()&lt;br /&gt;
        Me.ruponents = New System.ruponentModel.Container&lt;br /&gt;
        Dim ListViewItem1 As System.Windows.Forms.ListViewItem = New System.Windows.Forms.ListViewItem(&amp;quot;Item1&amp;quot;, 0)&lt;br /&gt;
        Dim ListViewItem2 As System.Windows.Forms.ListViewItem = New System.Windows.Forms.ListViewItem(&amp;quot;Item2&amp;quot;, 1)&lt;br /&gt;
        Dim ListViewItem3 As System.Windows.Forms.ListViewItem = New System.Windows.Forms.ListViewItem(&amp;quot;Item3&amp;quot;, 2)&lt;br /&gt;
        Dim ListViewItem4 As System.Windows.Forms.ListViewItem = New System.Windows.Forms.ListViewItem(&amp;quot;Item4&amp;quot;, 3)&lt;br /&gt;
        Dim ListViewItem5 As System.Windows.Forms.ListViewItem = New System.Windows.Forms.ListViewItem(&amp;quot;Item5&amp;quot;, 4)&lt;br /&gt;
        Me.ListView1 = New System.Windows.Forms.ListView&lt;br /&gt;
        Me.RadioButton1 = New System.Windows.Forms.RadioButton&lt;br /&gt;
        Me.RadioButton2 = New System.Windows.Forms.RadioButton&lt;br /&gt;
        Me.RadioButton3 = New System.Windows.Forms.RadioButton&lt;br /&gt;
        Me.StatusStrip1 = New System.Windows.Forms.StatusStrip&lt;br /&gt;
        Me.ToolStripStatusLabel1 = New System.Windows.Forms.ToolStripStatusLabel&lt;br /&gt;
        Me.StatusStrip1.SuspendLayout()&lt;br /&gt;
        Me.SuspendLayout()&lt;br /&gt;
        &amp;quot;&lt;br /&gt;
        &amp;quot;ListView1&lt;br /&gt;
        &amp;quot;&lt;br /&gt;
        Me.ListView1.Items.AddRange(New System.Windows.Forms.ListViewItem() {ListViewItem1, ListViewItem2, ListViewItem3, ListViewItem4, ListViewItem5})&lt;br /&gt;
        Me.ListView1.LargeImageList = Me.ImageList1&lt;br /&gt;
        Me.ListView1.Location = New System.Drawing.Point(16, 15)&lt;br /&gt;
        Me.ListView1.Margin = New System.Windows.Forms.Padding(4, 4, 4, 4)&lt;br /&gt;
        Me.ListView1.Name = &amp;quot;ListView1&amp;quot;&lt;br /&gt;
        Me.ListView1.Size = New System.Drawing.Size(317, 155)&lt;br /&gt;
        Me.ListView1.TabIndex = 0&lt;br /&gt;
        Me.ListView1.UseCompatibleStateImageBehavior = False&lt;br /&gt;
        &amp;quot;&lt;br /&gt;
        &amp;quot;RadioButton1&lt;br /&gt;
        &amp;quot;&lt;br /&gt;
        Me.RadioButton1.AutoSize = True&lt;br /&gt;
        Me.RadioButton1.Location = New System.Drawing.Point(391, 39)&lt;br /&gt;
        Me.RadioButton1.Margin = New System.Windows.Forms.Padding(4, 4, 4, 4)&lt;br /&gt;
        Me.RadioButton1.Name = &amp;quot;RadioButton1&amp;quot;&lt;br /&gt;
        Me.RadioButton1.Size = New System.Drawing.Size(58, 19)&lt;br /&gt;
        Me.RadioButton1.TabIndex = 1&lt;br /&gt;
        Me.RadioButton1.TabStop = True&lt;br /&gt;
        Me.RadioButton1.Text = &amp;quot;ascending&amp;quot;&lt;br /&gt;
        Me.RadioButton1.UseVisualStyleBackColor = True&lt;br /&gt;
        &amp;quot;&lt;br /&gt;
        &amp;quot;RadioButton2&lt;br /&gt;
        &amp;quot;&lt;br /&gt;
        Me.RadioButton2.AutoSize = True&lt;br /&gt;
        Me.RadioButton2.Location = New System.Drawing.Point(391, 79)&lt;br /&gt;
        Me.RadioButton2.Margin = New System.Windows.Forms.Padding(4, 4, 4, 4)&lt;br /&gt;
        Me.RadioButton2.Name = &amp;quot;RadioButton2&amp;quot;&lt;br /&gt;
        Me.RadioButton2.Size = New System.Drawing.Size(58, 19)&lt;br /&gt;
        Me.RadioButton2.TabIndex = 2&lt;br /&gt;
        Me.RadioButton2.TabStop = True&lt;br /&gt;
        Me.RadioButton2.Text = &amp;quot;descending&amp;quot;&lt;br /&gt;
        Me.RadioButton2.UseVisualStyleBackColor = True&lt;br /&gt;
        &amp;quot;&lt;br /&gt;
        &amp;quot;RadioButton3&lt;br /&gt;
        &amp;quot;&lt;br /&gt;
        Me.RadioButton3.AutoSize = True&lt;br /&gt;
        Me.RadioButton3.Location = New System.Drawing.Point(391, 124)&lt;br /&gt;
        Me.RadioButton3.Margin = New System.Windows.Forms.Padding(4, 4, 4, 4)&lt;br /&gt;
        Me.RadioButton3.Name = &amp;quot;RadioButton3&amp;quot;&lt;br /&gt;
        Me.RadioButton3.Size = New System.Drawing.Size(73, 19)&lt;br /&gt;
        Me.RadioButton3.TabIndex = 3&lt;br /&gt;
        Me.RadioButton3.TabStop = True&lt;br /&gt;
        Me.RadioButton3.Text = &amp;quot;no order&amp;quot;&lt;br /&gt;
        Me.RadioButton3.UseVisualStyleBackColor = True&lt;br /&gt;
        &amp;quot;&lt;br /&gt;
        &amp;quot;StatusStrip1&lt;br /&gt;
        &amp;quot;&lt;br /&gt;
        Me.StatusStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.ToolStripStatusLabel1})&lt;br /&gt;
        Me.StatusStrip1.Location = New System.Drawing.Point(0, 212)&lt;br /&gt;
        Me.StatusStrip1.Name = &amp;quot;StatusStrip1&amp;quot;&lt;br /&gt;
        Me.StatusStrip1.Padding = New System.Windows.Forms.Padding(1, 0, 19, 0)&lt;br /&gt;
        Me.StatusStrip1.Size = New System.Drawing.Size(536, 22)&lt;br /&gt;
        Me.StatusStrip1.TabIndex = 4&lt;br /&gt;
        Me.StatusStrip1.Text = &amp;quot;StatusStrip1&amp;quot;&lt;br /&gt;
        &amp;quot;&lt;br /&gt;
        &amp;quot;ToolStripStatusLabel1&lt;br /&gt;
        &amp;quot;&lt;br /&gt;
        Me.ToolStripStatusLabel1.Name = &amp;quot;ToolStripStatusLabel1&amp;quot;&lt;br /&gt;
        Me.ToolStripStatusLabel1.Size = New System.Drawing.Size(0, 17)&lt;br /&gt;
        &amp;quot;&lt;br /&gt;
        &amp;quot;Form1&lt;br /&gt;
        &amp;quot;&lt;br /&gt;
        Me.AutoScaleDimensions = New System.Drawing.SizeF(8.0!, 15.0!)&lt;br /&gt;
        Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font&lt;br /&gt;
        Me.ClientSize = New System.Drawing.Size(536, 234)&lt;br /&gt;
        Me.Controls.Add(Me.StatusStrip1)&lt;br /&gt;
        Me.Controls.Add(Me.RadioButton3)&lt;br /&gt;
        Me.Controls.Add(Me.RadioButton2)&lt;br /&gt;
        Me.Controls.Add(Me.RadioButton1)&lt;br /&gt;
        Me.Controls.Add(Me.ListView1)&lt;br /&gt;
        Me.Margin = New System.Windows.Forms.Padding(4, 4, 4, 4)&lt;br /&gt;
        Me.StatusStrip1.ResumeLayout(False)&lt;br /&gt;
        Me.StatusStrip1.PerformLayout()&lt;br /&gt;
        Me.ResumeLayout(False)&lt;br /&gt;
        Me.PerformLayout()&lt;br /&gt;
    End Sub&lt;br /&gt;
    Friend WithEvents ListView1 As System.Windows.Forms.ListView&lt;br /&gt;
    Friend WithEvents RadioButton1 As System.Windows.Forms.RadioButton&lt;br /&gt;
    Friend WithEvents RadioButton2 As System.Windows.Forms.RadioButton&lt;br /&gt;
    Friend WithEvents RadioButton3 As System.Windows.Forms.RadioButton&lt;br /&gt;
    Friend WithEvents ImageList1 As System.Windows.Forms.ImageList&lt;br /&gt;
    Friend WithEvents StatusStrip1 As System.Windows.Forms.StatusStrip&lt;br /&gt;
    Friend WithEvents ToolStripStatusLabel1 As System.Windows.Forms.ToolStripStatusLabel&lt;br /&gt;
End Class&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	</feed>