dasar menggunakan contoh sebelumnya , kita akan melihat bagaimana, visual basic. bersih , mengurutkan data di ListView oleh salah satu kolom nya.
Proyek sebelum Anda menambahkan dua tombol untuk memilih yang merupakan urutan yang diinginkan. Seperti terlihat pada gambar di bawah ini:

Kemudian dalam kode bentuk yang sama kita akan membuat dua kelas baru (OrdenarPorNombre dan Ketertiban Size), dan peristiwa tombol menjilat kita mengatur properti ListView ListViewItemSorter dengan contoh baru dari kelas yang sesuai dengan urutan yang dipilih. Kode ini pendek, sehingga tidak membutuhkan biaya analisis banyak. Lalu aku meninggalkan semua kode dalam bentuk:
Impor System.IO Public Class Form1 Private Sub Form1_Load (ByVal sender Sebagai System.Object, _ ByVal e Sebagai System.EventArgs) Handles MyBase.Load Dim d Sebagai DirectoryInfo Baru ("C: \ Windows") ListView1.View = View.Details ListView1.FullRowSelect = True ListView1.BeginUpdate () ListView1.Items.Clear () Untuk Setiap f Sebagai Fileinfo Dalam d.GetFiles Dim Item As New ListViewItem (f.Name) item.SubItems.Add (f.length) item.SubItems.Add (f.CreationTime) item.SubItems.Add (f.LastWriteTime) item.SubItems.Add (f.LastAccessTime) ListView1.Items.Add (item) Berikutnya ListView1.EndUpdate () End Sub Private Sub Button1_Click (ByVal sender Sebagai System.Object, _ ByVal e Sebagai System.EventArgs) Menangani Button1.Click 'Urutkan menurun menurut nama ListView1.ListViewItemSorter = New ordenarPorNombre End Sub Private Sub Button2_Click (ByVal sender Sebagai System.Object, _ E ByVal Sebagai System.EventArgs) Menangani Button2.Click 'Urut berdasarkan ukuran ListView1.ListViewItemSorter = New ordenarPorTamaño End Sub Akhir Kelas Kelas ordenarPorNombre Mengimplementasikan IComparer
Public Function Bandingkan (ByVal x Sebagai Obyek, ByVal y Sebagai Obyek) _ As Integer Implements System.Collections.IComparer.Compare Dim item1 Sebagai ListViewItem = CType (x, ListViewItem) Dim item2 Sebagai ListViewItem = CType (y, ListViewItem) Kembali String.Compare (item1.Text, item2.Text) End Function Akhir Kelas
Kelas ordenarPorTamaño Mengimplementasikan IComparer Public Function Bandingkan (ByVal x Sebagai Obyek, ByVal y Sebagai Obyek) _ As Integer Implements System.Collections.IComparer.Compare Dim item1 Sebagai ListViewItem = CType (x, ListViewItem) Dim item2 Sebagai ListViewItem = CType (y, ListViewItem) Math.Sign Kembali (CLng (item1.SubItems (1) Teks) -.. CLng (item2.SubItems (1) Text)) End Function Akhir Kelas
Seperti biasa, saya berharap kode ini akan sangat berguna.
Informasi Bitacoras.com ...
Laju Bitacoras.com: menggunakan sebagai dasar contoh di atas, kita akan melihat bagaimana, visual basic Data semacam Bersih ListView oleh salah satu kolom tersebut.. Proyek sebelumnya akan menambah dua tombol untuk memilih adalah urutan .....
Ok, baik, tapi ... ini hanya urutan, dan untuk memesan atas dan ke bawah, memberikan klik pada header kolom?
Hi Laura:
Untuk memesan namanya dalam turun hanya perlu membalikkan variabel yang dikembalikan di kelas OrdenarPorNombre ... Anda harus mengubah:
Kembali String.Compare (item1.Text, item2.Text)
untuk ini:
Kembali String.Compare (item2.Text, item1.Text)
dan dalam kasus urutan numerik harus membalikkan tanda kembali oleh kasus ordenarPorTamaño, mengubah ini:
Math.Sign Kembali (CLng (item1.SubItems (1) Teks) -.. CLng (item2.SubItems (1) Text))
untuk ini:
Kembali Math.Sign () CLng (item1.SubItems (1) Teks.) - CLng (. Item2.SubItems (1) Text)) * -1)
dan akhirnya memberitahu Anda bahwa untuk memberikan kolom Klik dari ListView tidak berkomentar disini karena saya ingin mengabdikan sebuah artikel terpisah.
Salam, Elisa
Dan seperti yang Anda order by bidang apapun dalam turun date Tanggal Dibuat misalnya.
Tambahkan kelas berikut dan menetapkan ke tombol yang Anda inginkan.
Kelas ordenarPorFechaCreacion
Mengimplementasikan IComparer
Public Function Bandingkan (ByVal x Sebagai Obyek, ByVal y Sebagai Obyek) _
As Integer Implements System.Collections.IComparer.Compare
Dim item1 Sebagai ListViewItem = CType (x, ListViewItem)
Dim item2 Sebagai ListViewItem = CType (y, ListViewItem)
Kembali Date.Compare (Date.parse (item1.SubItems (2). Teks), Date.parse (item2.SubItems (2). Teks))
End Function
Akhir Kelas
Halo orang.
di C # sebagai akan menjadi kalimat untuk urutan yang sama?
[...] [...]
dobry awal
dalam kasus jika saya memiliki daftar jadi
23 = 5 +5 +13
5 = 1 +1 +1 +2
4 = 3 +1
dll .....
Bisa saya lakukan karena saya memesan dengan angka-angka yang jika hasilnya adalah saya 231 = 100 +100 +31 tidak menaruhnya setelah 23 = 5 +5 +13
Selamat siang,
Maaf atas ketidaknyamanan ini, tapi akan tahu bagaimana Anda dapat mengurutkan berdasarkan dua kolom sekaligus? seperti ini:
XYZ
aba -> 1
baa -> 2
b -> 3
dan kiri:
XYZ
b -> 3
aba -> 1
baa -> 2
Super berterima kasih jika Anda bisa membantu dan jika tidak, terima kasih untuk posting informasi yang sama yang berguna bagi saya juga.
Dan jika Anda ingin berkencan ..... yang tidak hanya berdasarkan tanggal pembuatan