Click here to Skip to main content
15,890,527 members
Home / Discussions / Visual Basic
   

Visual Basic

 
GeneralRe: can u help my project?? Pin
EliottA20-Mar-09 2:49
EliottA20-Mar-09 2:49 
AnswerRe: can u help my project?? [modified] Pin
Jon_Boy20-Mar-09 2:35
Jon_Boy20-Mar-09 2:35 
Questionproblem related to sorting of listview.... Pin
dhaval khatri19-Mar-09 19:27
dhaval khatri19-Mar-09 19:27 
AnswerRe: problem related to sorting of listview.... Pin
Christian Graus19-Mar-09 19:53
protectorChristian Graus19-Mar-09 19:53 
GeneralRe: problem related to sorting of listview.... Pin
dhaval khatri20-Mar-09 19:36
dhaval khatri20-Mar-09 19:36 
AnswerRe: problem related to sorting of listview.... Pin
Sebastian Br.19-Mar-09 21:09
Sebastian Br.19-Mar-09 21:09 
GeneralRe: problem related to sorting of listview.... Pin
dhaval khatri20-Mar-09 19:44
dhaval khatri20-Mar-09 19:44 
AnswerRe: problem related to sorting of listview.... Pin
George B Gilbert21-Mar-09 17:17
George B Gilbert21-Mar-09 17:17 
Sorting Listview columns in the .NET world is not simple. Let me see if I can give you the tools that I use for the same task. First, add this class to your project.

Imports System.Windows.Forms
Public Class C_ListviewComparer
             Implements IComparer
#Region " Members "
    Private _columnNumber As Integer
    Private _sortOrder As SortOrder
#End Region
#Region " Constructors "
    Public Sub New(ByVal ColumnNumber As Integer, _
                   Optional ByVal SortOrder As SortOrder = SortOrder.Ascending)
        _columnNumber = ColumnNumber
        _sortOrder = SortOrder
    End Sub
#End Region
#Region " Methods "
#Region " ... Compare "
    Public Function Compare( _
                    ByVal Lvi1 As Object, _
                    ByVal Lvi2 As Object) As Integer _
                    Implements System.Collections.IComparer.Compare
        '-----------------------------------------------------
        ' Compare two subitem values in the same listview
        ' column       
        '-----------------------------------------------------
        Select Case _sortOrder
            Case SortOrder.Ascending            ' Ascending sort order
                Return CompareResult(SubitemValue(DirectCast(Lvi1, ListViewItem)), _
                                     SubitemValue(DirectCast(Lvi2, ListViewItem)))
            Case Else                           ' Descending sort order
                Return CompareResult(SubitemValue(DirectCast(Lvi2, ListViewItem)), _
                                     SubitemValue(DirectCast(Lvi1, ListViewItem)))
        End Select
    End Function
#End Region
#End Region
#Region " Procedures "
#Region " ... CompareResult "
    Private Function CompareResult( _
                     ByVal FirstString As String, _
                     ByVal SecondString As String) As Integer
        '-----------------------------------------------------        
        ' Compare the subitem values to determine their sort
        ' order. For ascending sorts, the FirstString is the X
        ' value and SecondString the Y value. The values are
        ' reversed for a Descending sort.
        '-----------------------------------------------------
        If IsNumeric(FirstString) _
        AndAlso IsNumeric(SecondString) Then
            '** Numeric values
            Return Val(FirstString).CompareTo(Val(SecondString))
        ElseIf IsDate(FirstString) _
        AndAlso IsDate(SecondString) Then
            '** Date values
            Return _
                DateTime.Parse(FirstString).CompareTo(DateTime.Parse(SecondString))
        Else
            '** String values
            Return String.Compare(FirstString, SecondString)
        End If
    End Function
#End Region
#Region " ... SubitemValue "
    Private Function SubitemValue( _
            ByVal Item As ListViewItem) As String
        '-----------------------------------------------------
        ' Get the subitem text upon which the compare is based
        '-----------------------------------------------------
        Select Case Item.SubItems.Count
            Case Is <= _columnNumber
                Return ""
            Case Else
                Return Item.SubItems(_columnNumber).Text
        End Select
    End Function
#End Region
#End Region
End Class


With the above class in place, sorting listview columns becomes easy. For example, to sort ascending on column 3, use something like this.

Listview1.ListViewItemSorter = New C_ListviewComparer(3)
Listview1.Sort()


To sort descending on column 6, the code becomes as follows.

Listview1.ListViewItemSorter = New C_ListviewComparer(6, SortOrder.Descending)
Listview1.Sort()


To sort on two or more columns, sort the minor key first and then the major key. For example, to sort column 4 within column 3, do this.

Listview1.ListViewItemSorter = New C_ListviewComparer(4)
Listview1.Sort()
Listview1.ListViewItemSorter = New C_ListviewComparer(3)
Listview1.Sort()


I should probably write an article on this topic, but, I just submitted another one. Maybe this one will be next.

Hope this helps ... George
QuestionMDI Child Form/Controls wont start out Maximized when displaying in a tab control (super frustrating) Pin
scubasteev19-Mar-09 14:59
scubasteev19-Mar-09 14:59 
AnswerRe: MDI Child Form/Controls wont start out Maximized when displaying in a tab control (super frustrating) Pin
nlarson1120-Mar-09 3:47
nlarson1120-Mar-09 3:47 
AnswerRe: MDI Child Form/Controls wont start out Maximized when displaying in a tab control (super frustrating) Pin
George B Gilbert21-Mar-09 17:24
George B Gilbert21-Mar-09 17:24 
QuestionFolder watcher application disappears after running several days Pin
dBrong19-Mar-09 8:01
dBrong19-Mar-09 8:01 
Answermake it a scheduled task ? Pin
David Mujica19-Mar-09 8:15
David Mujica19-Mar-09 8:15 
GeneralRe: make it a scheduled task ? Pin
dBrong19-Mar-09 12:26
dBrong19-Mar-09 12:26 
GeneralRe: make it a scheduled task ? Pin
Luc Pattyn19-Mar-09 12:45
sitebuilderLuc Pattyn19-Mar-09 12:45 
Generalself-submit Pin
David Mujica19-Mar-09 13:56
David Mujica19-Mar-09 13:56 
GeneralRe: self-submit Pin
dBrong19-Mar-09 14:28
dBrong19-Mar-09 14:28 
AnswerRe: Folder watcher application disappears after running several days Pin
Dave Kreskowiak19-Mar-09 8:37
mveDave Kreskowiak19-Mar-09 8:37 
AnswerRe: Folder watcher application disappears after running several days Pin
Mycroft Holmes19-Mar-09 20:31
professionalMycroft Holmes19-Mar-09 20:31 
GeneralRe: Folder watcher application disappears after running several days Pin
dBrong20-Mar-09 6:06
dBrong20-Mar-09 6:06 
AnswerRe: Folder watcher application disappears after running several days Pin
Tim Carmichael20-Mar-09 6:14
Tim Carmichael20-Mar-09 6:14 
GeneralRe: Folder watcher application disappears after running several days Pin
dBrong20-Mar-09 7:00
dBrong20-Mar-09 7:00 
Questionhow to display database records in list view Pin
akosidandan19-Mar-09 7:27
akosidandan19-Mar-09 7:27 
AnswerRe: how to display database records in list view Pin
dan!sh 19-Mar-09 7:30
professional dan!sh 19-Mar-09 7:30 
GeneralRe: how to display database records in list view Pin
akosidandan19-Mar-09 7:40
akosidandan19-Mar-09 7:40 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.