현재 오프라인 상태입니다. 인터넷에 다시 연결하기를 기다리고 있습니다.

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

중요: 본 문서는 전문 번역가가 번역한 것이 아니라 Microsoft 기계 번역 소프트웨어로 번역한 것입니다. Microsoft는 번역가가 번역한 문서 및 기계 번역된 문서를 모두 제공하므로 Microsoft 기술 자료에 있는 모든 문서를 한글로 접할 수 있습니다. 그러나 기계 번역 문서가 항상 완벽한 것은 아닙니다. 따라서 기계 번역 문서에는 마치 외국인이 한국어로 말할 때 실수를 하는 것처럼 어휘, 구문 또는 문법에 오류가 있을 수 있습니다. Microsoft는 내용상의 오역 또는 Microsoft 고객이 이러한 오역을 사용함으로써 발생하는 부 정확성, 오류 또는 손해에 대해 책임을 지지 않습니다. Microsoft는 이러한 문제를 해결하기 위해 기계 번역 소프트웨어를 자주 업데이트하고 있습니다.

이 문서의 영문 버전 보기: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)				
back to the top

예제 프로젝트 빌드 방법

  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 개발자 네트워크 웹 사이트를 방문하십시오. partial 클래스 및 Windows Forms 디자이너에 대한 자세한 내용은 다음 MSDN 웹 사이트를 방문하십시오.
  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 = -2Next					
  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 IfElse    ' Set the column number that is to be sorted; default to ascending.    lvwColumnSorter.SortColumn = e.Column    lvwColumnSorter.Order = SortOrder.AscendingEnd If' Perform the sort with these new sort options.Me.ListView1.Sort()					
  7. 프로젝트 메뉴에서 새 클래스를 프로젝트에 추가하기 위해 클래스 추가 클릭하십시오.
  8. 모든 새 클래스의 기본 코드를 다음 코드로 바꿉니다:
    Imports System.CollectionsImports System.Windows.FormsPublic 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 PropertyEnd Class					
  9. 저장, 구축 및 예제 프로젝트를 실행하십시오.
  10. ListView 컨트롤에서 다양한 열 머리글을 클릭하십시오. 머리글을 클릭하면 ListView 컨트롤의 내용은 클릭하면 해당 열을 기준으로 오름차순으로 정렬됩니다. 같은 열 머리글을 다시 클릭하면 해당 열은 내림차순으로 정렬됩니다.
back to the top

경고: 이 문서는 자동으로 번역되었습니다.

속성

문서 ID: 319399 - 마지막 검토: 05/11/2007 07:08:50 - 수정: 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
피드백