ListView 컨트롤은 Visual Basic .NET에서 또는 Visual Basic 2005의 열에 정렬 방법

기술 자료 번역 기술 자료 번역
기술 자료: 319399 - 이 문서가 적용되는 제품 보기.
이 문서에서는 Microsoft Visual C# .NET 버전에 대해서는 319401 참조하십시오.
이 문서에서는 Microsoft Visual Basic 6.0 버전에 대해서는 170884 참조하십시오.
모두 확대 | 모두 축소

이 페이지에서

요약

이 문서에서는 ListView 컨트롤은 Visual Basic .NET 또는 Visual Basic 2005 응용 프로그램은 열을 기준으로 정렬하는 방법에 대해 설명합니다.

ListView 컨트롤을 사용하여 작업하는 경우 해당 내용을 특정 열을 기준으로 정렬하는 것이 좋습니다. Windows 탐색기에서 이러한 기능의 예는 발생하는 하드 디스크에 있는 폴더의 내용을 볼 때 프로그램. 에 자세히 보려면 Windows 탐색기에서 해당 폴더의 파일에 대한 정보를 표시합니다. 예를 들어, 파일 이름, 파일 크기, 파일 형식 및 파일을 수정한 날짜 참조하십시오. 열 머리글을 클릭하면 목록이 해당 열을 기준으로 오름차순으로 정렬됩니다. 같은 열 머리글을 다시 클릭하면 열이 내림차순으로 정렬됩니다.

이 문서의 예제에서는 IComparer</a0> 인터페이스를 구현하는 클래스를 정의합니다. 또한 이 예제에서는 CaseInsenstiveComparer 클래스의 비교 메서드를 사용하여 항목 실제 비교를 수행합니다. 이 메서드는 비교 대/소문자를 구분하지 않습니다 ("사과" 동일한 "사과" 로 간주되는). 또한 이 예제에서는 모든 열을 "텍스트" 방식으로 정렬되어 유의하십시오. 서로 다른 방식으로 정렬하려면 (같은 숫자 순으로)를 관계없이 해당 정렬 방식을 사용할 함께 다음 코드 줄을 바꿀 수 있습니다:
compareResult = ObjectCompare.Compare(listviewX.SubItems(ColumnToSort).Text, listviewY.SubItems(ColumnToSort).Text)
				

예제 프로젝트 빌드 방법

  1. Visual Basic 2005를 Windows 응용 프로그램 또는 Visual Basic .NET 프로젝트를 새로 만듭니다. 기본적으로 Form1이 생성됩니다.

    참고 Visual Basic 2005 에서 코드를 변경해야 합니다. 기본적으로, Windows Forms 프로젝트를 만들 때 Visual Basic 프로젝트에 대한 두 개의 파일을 만듭니다. Form1 폼을 이라는 폼을 나타내는 두 개의 파일은 Form1.vb 및 Form1.Designer.vb 이름이 지정됩니다. Form1.vb 파일의 코드를 작성합니다. Windows Forms 디자이너 코드 Form1.Designer.vb 파일에 씁니다. Windows Forms 디자이너 partial 키워드를 사용하여 Form1의 구현은 두 개의 별도 파일로 나눕니다. 이 디자이너에서 생성된 코드 코드와 함께 삽입되어 방지됩니다.

    새로운 Visual Basic 2005 언어 향상 기능에 대한 자세한 내용은 다음 MSDN Microsoft 개발자 네트워크 웹 사이트를 방문하십시오.
    http://msdn2.microsoft.com/en-us/library/ms379584(vs.80).aspx
    partial 클래스 및 Windows Forms 디자이너에 대한 자세한 내용은 다음 MSDN 웹 사이트를 방문하십시오.
    http://msdn2.microsoft.com/en-us/library/ms171843.aspx
  2. ListView 컨트롤을 Form1에 추가하십시오. 여러 x 다양한 여러 인치 용지 높이 수 폼을 크기를 조정하십시오.
  3. 폼의 클래스에 다음 코드를 붙여:
    Private lvwColumnSorter As ListViewColumnSorter
    					
  4. 폼 생성자에 다음 코드를 붙여 InitializeComponent 메서드 호출:
    ' Create an instance of a ListView column sorter and assign it 
    ' to the ListView control.
    lvwColumnSorter = New ListViewColumnSorter()
    Me.ListView1.ListViewItemSorter = lvwColumnSorter
    					
  5. 폼의 Load 이벤트에 다음 코드를 붙여:
    Dim columnheader As ColumnHeader    ' Used for creating column headers.
    Dim listviewitem As ListViewItem    ' Used for creating ListView items.
    
    ' Make sure that the view is set to show details.
    ListView1.View = View.Details
    
    ' Create some ListView items consisting of first and last names.
    listviewitem = New ListViewItem("Mike")
    listviewitem.SubItems.Add("Nash")
    Me.ListView1.Items.Add(listviewitem)
    
    listviewitem = New ListViewItem("Kim")
    listviewitem.SubItems.Add("Abercrombie")
    Me.ListView1.Items.Add(listviewitem)
    
    listviewitem = New ListViewItem("Sunil")
    listviewitem.SubItems.Add("Koduri")
    Me.ListView1.Items.Add(listviewitem)
    
    listviewitem = New ListViewItem("Birgit")
    listviewitem.SubItems.Add("Seidl")
    Me.ListView1.Items.Add(listviewitem)
    
    ' Create some column headers for the data.
    columnheader = New ColumnHeader()
    columnheader.Text = "First Name"
    Me.ListView1.Columns.Add(columnheader)
    
    columnheader = New ColumnHeader()
    columnheader.Text = "Last Name"
    Me.ListView1.Columns.Add(columnheader)
    
    ' Loop through and size each column header to fit the column header text.
    For Each columnheader In Me.ListView1.Columns
        columnheader.Width = -2
    Next
    					
  6. ListView에 대한 ColumnClick 이벤트에 다음 코드를 붙여:
    ' Determine if the clicked column is already the column that is 
    ' being sorted.
    If (e.Column = lvwColumnSorter.SortColumn) Then
        ' Reverse the current sort direction for this column.
        If (lvwColumnSorter.Order = SortOrder.Ascending) Then
            lvwColumnSorter.Order = SortOrder.Descending
        Else
            lvwColumnSorter.Order = SortOrder.Ascending
        End If
    Else
        ' Set the column number that is to be sorted; default to ascending.
        lvwColumnSorter.SortColumn = e.Column
        lvwColumnSorter.Order = SortOrder.Ascending
    End If
    
    ' Perform the sort with these new sort options.
    Me.ListView1.Sort()
    					
  7. 프로젝트 메뉴에서 새 클래스를 프로젝트에 추가하기 위해 클래스 추가 클릭하십시오.
  8. 모든 새 클래스의 기본 코드를 다음 코드로 바꿉니다:
    Imports System.Collections
    Imports System.Windows.Forms
    
    Public Class ListViewColumnSorter
        Implements System.Collections.IComparer
    
        Private ColumnToSort As Integer
        Private OrderOfSort As SortOrder
        Private ObjectCompare As CaseInsensitiveComparer
    
        Public Sub New()
            ' Initialize the column to '0'.
            ColumnToSort = 0
    
            ' Initialize the sort order to 'none'.
            OrderOfSort = SortOrder.None
    
            ' Initialize the CaseInsensitiveComparer object.
            ObjectCompare = New CaseInsensitiveComparer()
        End Sub
    
        Public Function Compare(ByVal x As Object, ByVal y As Object) As Integer Implements IComparer.Compare
            Dim compareResult As Integer
            Dim listviewX As ListViewItem
            Dim listviewY As ListViewItem
    
            ' Cast the objects to be compared to ListViewItem objects.
            listviewX = CType(x, ListViewItem)
            listviewY = CType(y, ListViewItem)
    
            ' Compare the two items.
            compareResult = ObjectCompare.Compare(listviewX.SubItems(ColumnToSort).Text, listviewY.SubItems(ColumnToSort).Text)
    
            ' Calculate the correct return value based on the object 
            ' comparison.
            If (OrderOfSort = SortOrder.Ascending) Then
                ' Ascending sort is selected, return typical result of 
                ' compare operation.
                Return compareResult
            ElseIf (OrderOfSort = SortOrder.Descending) Then
                ' Descending sort is selected, return negative result of 
                ' compare operation.
                Return (-compareResult)
            Else
                ' Return '0' to indicate that they are equal.
                Return 0
            End If
        End Function
    
        Public Property SortColumn() As Integer
            Set(ByVal Value As Integer)
                ColumnToSort = Value
            End Set
    
            Get
                Return ColumnToSort
            End Get
        End Property
    
        Public Property Order() As SortOrder
            Set(ByVal Value As SortOrder)
                OrderOfSort = Value
            End Set
    
            Get
                Return OrderOfSort
            End Get
        End Property
    End Class
    					
  9. 저장, 구축 및 예제 프로젝트를 실행하십시오.
  10. ListView 컨트롤에서 다양한 열 머리글을 클릭하십시오. 머리글을 클릭하면 ListView 컨트롤의 내용은 클릭하면 해당 열을 기준으로 오름차순으로 정렬됩니다. 같은 열 머리글을 다시 클릭하면 해당 열은 내림차순으로 정렬됩니다.

속성

기술 자료: 319399 - 마지막 검토: 2007년 5월 11일 금요일 - 수정: 3.5
본 문서의 정보는 다음의 제품에 적용됩니다.
  • Microsoft Visual Basic 2005
  • Microsoft Visual Basic .NET 2003 Standard Edition
  • Microsoft Visual Basic .NET 2002 Standard Edition
키워드:?
kbmt kbvs2005swept kbvs2005applies kbhowtomaster KB319399 KbMtko
기계 번역된 문서
중요: 본 문서는 전문 번역가가 번역한 것이 아니라 Microsoft 기계 번역 소프트웨어로 번역한 것입니다. Microsoft는 번역가가 번역한 문서 및 기계 번역된 문서를 모두 제공하므로 Microsoft 기술 자료에 있는 모든 문서를 한글로 접할 수 있습니다. 그러나 기계 번역 문서가 항상 완벽한 것은 아닙니다. 따라서 기계 번역 문서에는 마치 외국인이 한국어로 말할 때 실수를 하는 것처럼 어휘, 구문 또는 문법에 오류가 있을 수 있습니다. Microsoft는 내용상의 오역 또는 Microsoft 고객이 이러한 오역을 사용함으로써 발생하는 부 정확성, 오류 또는 손해에 대해 책임을 지지 않습니다. Microsoft는 이러한 문제를 해결하기 위해 기계 번역 소프트웨어를 자주 업데이트하고 있습니다.
이 문서의 영문 버전 보기:319399

피드백 보내기

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com