Bagaimana cara untuk menyortir ListView kontrol oleh kolom dalam Visual Basic.BERSIH atau pada Visual Basic 2005

PENTING: Artikel ini diterjemahkan menggunakan perangkat lunak mesin penerjemah Microsoft dan bukan oleh seorang penerjemah. Microsoft menawarkan artikel yang diterjemahkan oleh seorang penerjemah maupun artikel yang diterjemahkan menggunakan mesin sehingga Anda akan memiliki akses ke seluruh artikel baru yang diterbitkan di Pangkalan Pengetahuan (Knowledge Base) dalam bahasa yang Anda gunakan. Namun, artikel yang diterjemahkan menggunakan mesin tidak selalu sempurna. Artikel tersebut mungkin memiliki kesalahan kosa kata, sintaksis, atau tata bahasa, hampir sama seperti orang asing yang berbicara dalam bahasa Anda. Microsoft tidak bertanggung jawab terhadap akurasi, kesalahan atau kerusakan yang disebabkan karena kesalahan penerjemahan konten atau penggunaannya oleh para pelanggan. Microsoft juga sering memperbarui perangkat lunak mesin penerjemah.

Klik disini untuk melihat versi Inggris dari artikel ini:319399
Untuk Microsoft Visual C#.NET versi ini Pasal, lihat 319401.
Untuk versi Microsoft Visual Basic 6.0 ini Pasal, lihat 170884.
RINGKASAN
Artikel ini selangkah demi selangkah menjelaskan cara untuk menyortir ListView kontrol oleh kolom dalam Visual Basic.Aplikasi NET atau Visual Basic 2005.

Ketika Anda bekerja dengan ListView kontrol, Anda mungkin ingin untuk menyortir isinya berdasarkan tertentu kolom. Contoh fungsi semacam ini terjadi di Windows Explorer program ketika Anda melihat isi folder di harddisk Anda. Dalam rincian Lihat, Windows Explorer menampilkan informasi tentang file dalam folder. Untuk misalnya, Anda melihat nama file, ukuran file, jenis file dan tanggal yang file diubah. Ketika Anda mengklik salah satu kolom header, daftar ini diurutkan dalam urutan yang didasarkan pada kolom. Ketika Anda mengklik kolom yang sama header lagi, kolom yang diurutkan dalam urutan.

Contoh dalam artikel ini mendefinisikan sebuah kelas yang mengimplementasikan IComparer antarmuka. Selain itu, contoh ini menggunakan Membandingkan metode CaseInsenstiveComparer kelas untuk melakukan perbandingan aktual item. Perhatikan bahwa metode ini perbandingan tidak peka ("Apple" dianggap sama seperti "apple"). Juga, perhatikan bahwa semua kolom dalam contoh ini adalah diurutkan dengan cara "teks". Jika Anda ingin untuk menyortir dengan cara yang berbeda (seperti numerik), Anda dapat mengganti baris kode berikut dengan mana pendekatan untuk menyortir yang ingin Anda gunakan:
compareResult = ObjectCompare.Compare(listviewX.SubItems(ColumnToSort).Text, listviewY.SubItems(ColumnToSort).Text)				
back to the top

Bagaimana membangun contoh proyek

  1. Buat baru Visual Basic.NET atau Visual Basic 2005 Windows aplikasi proyek. Form1 dibuat secara default.

    Catatan Anda harus mengubah kode pada Visual Basic 2005. Secara default, Visual Basic menciptakan dua file untuk proyek ketika Anda membuat proyek Windows Forms. Jika bentuk bernama Form1, dua file yang mewakili bentuk yang bernama Form1.vb dan Form1.Designer.vb. Anda menulis kode dalam Form1.vb file. Windows Forms Designer menulis kode dalam Form1.Designer.vb file. Windows Forms Designer menggunakan kata kunci parsial untuk membagi pelaksanaan Form1 menjadi dua file terpisah. Perilaku ini mencegah kode yang dihasilkan desainer yang diselingi dengan kode Anda.

    Untuk informasi lebih lanjut tentang tambahan bahasa Visual Basic 2005 baru, kunjungi Web site Microsoft Developer Network (MSDN) berikut: Untuk informasi lebih lanjut tentang kelas parsial dan desainer bentuk Windows, kunjungi Website MSDN berikut:
  2. Tambahkan ListView mengontrol Form1. Ukuran formulir untuk beberapa inci lebar oleh beberapa inci tinggi.
  3. Paste kode berikut ke kelas untuk bentuk:
    Private lvwColumnSorter As ListViewColumnSorter					
  4. Paste kode berikut ke konstruktor bentuk, Setelah panggilan untuk InitializeComponent metode:
    ' Create an instance of a ListView column sorter and assign it ' to the ListView control.lvwColumnSorter = New ListViewColumnSorter()Me.ListView1.ListViewItemSorter = lvwColumnSorter					
  5. Paste kode berikut ke Beban acara dalam bentuk:
    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. Paste kode berikut ke ColumnClick acara untuk ListView:
    ' 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. Pada Project menu, klik Menambahkan kelas menambahkan kelas baru untuk proyek.
  8. Mengganti semua kode standar dalam kelas baru dengan kode berikut:
    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. Simpan, membangun, dan kemudian jalankan contoh proyek.
  10. Klik header kolom berbagai di ListView kontrol. Ketika Anda klik header, isi ListView kontrol diurutkan dalam urutan yang didasarkan pada kolom yang Anda klik. Ketika Anda klik header kolom yang sama lagi, kolom disortir dalam urutan.
back to the top

Peringatan: Artikel ini telah diterjemahkan secara otomatis

Properti

ID Artikel: 319399 - Tinjauan Terakhir: 09/24/2011 15:26:00 - Revisi: 2.0

Microsoft Visual Basic 2005, Microsoft Visual Basic .NET 2003 Standard Edition, Microsoft Visual Basic .NET 2002 Standard Edition

  • kbvs2005swept kbvs2005applies kbhowtomaster kbmt KB319399 KbMtid
Tanggapan