Lajittele tiedot ListView

perusteella käyttämällä edellisen esimerkin , näemme miten, Visual Basic. net , lajitella tiedot ListView joku hänen sarakkeita.

Hanke ennen lisäät kaksi painiketta valitaksesi mitä on haluttu järjestys. Kuten kuvassa alla:

Myöhemmin samassa muodossa koodi luomme kaksi uutta luokkaa (OrdenarPorNombre ja Järjestys Size) ja tapahtumat painiketta nuolla asetimme ListView ListViewItemSorter ominaisuuden uusi esiintymä luokan vastaavan valitussa järjestyksessä. Koodi on lyhyt, joten älä maksa paljon analyysiä. Sitten jättää kaikki koodi muotoa:

 Tuonti System.IO
 Public Class Form1

 Private Sub Form1_Load (ByVal lähettäjälle System.Object-_
 ByVal e Kuten System.EventArgs) kahvat MyBase.Load
 Dim d As New DirectoryInfo ("C: \ Windows")
 ListView1.View = View.Details
 ListView1.FullRowSelect = True

 ListView1.BeginUpdate ()
 ListView1.Items.Clear ()

 Jokaisen F FileInfo In d.GetFiles
 Dim alkio uutena 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 (kohta)
 Seuraava
 ListView1.EndUpdate ()

 End Sub

 Private Sub Button1_Click (ByVal lähettäjälle System.Object-_
 ByVal e Kuten System.EventArgs) Kahvat Button1.Click
 "Nimen
 ListView1.ListViewItemSorter = Uusi ordenarPorNombre
 End Sub

 Private Sub Button2_Click (ByVal lähettäjälle System.Object-_
 ByVal e Kuten System.EventArgs) Kahvat Button2.Click
 'Järjestä koon
 ListView1.ListViewItemSorter = Uusi ordenarPorTamaño
 End Sub
 End Class

 Luokka ordenarPorNombre
 Toteuttaa IComparer
 Public Function Vertaa (ByVal x As Object, ByVal y As Object) _
 As Integer Toteuttaa System.Collections.IComparer.Compare
 Dim item1 Koska ListViewItem = CType (x, ListViewItem)
 Dim item2 Koska ListViewItem = CType (y, ListViewItem)
 Paluu String.Compare (item1.Text, item2.Text)
 End Function
 End Class
 Luokka ordenarPorTamaño
 Toteuttaa IComparer

 Public Function Vertaa (ByVal x As Object, ByVal y As Object) _
 As Integer Toteuttaa System.Collections.IComparer.Compare
 Dim item1 Koska ListViewItem = CType (x, ListViewItem)
 Dim item2 Koska ListViewItem = CType (y, ListViewItem)
 Math.Sign Return (CLng (item1.SubItems (1). Text) - CLng (item2.SubItems (1). Text))
 End Function
 End Class

Kuten aina, toivon koodi on hyötyä.

11 Responses to "lajittelu Dataa ListView"

  1. Bitacoras.com sanoo:

    Tiedot Bitacoras.com ...

    Rate in Bitacoras.com: käyttäen perustana Edellisessä esimerkissä näemme, miten, Visual Basic. Net ListView lajitella tietoja mistään sen sarakkeita. Aiemman hankkeen vielä kaksi painikkeilla joka on järjestys .....

  2. Laura sanoo:

    Ok, hienoa, mutta ... tämä vain nousevassa ja tilata ylös ja alas, jolloin klikkaa sarakkeen otsikkoa?

  3. Elisa sanoo:

    Hi Laura:

    Voit tilata nimen laskevassa täytyy vain kääntää muuttujia palautetaan luokassa OrdenarPorNombre ... Sinun täytyy muuttaa:
    Paluu String.Compare (item1.Text, item2.Text)
    tämä:
    Paluu String.Compare (item2.Text, item1.Text)

    ja jos numerojärjestyksessä on käännettävä merkki palauttama ordenarPorTamaño tapauksessa tähän muutoksia:
    Math.Sign Return (CLng (item1.SubItems (1). Text) - CLng (item2.SubItems (1). Text))
    tämä:
    Paluu Math.Sign () CLng (item1.SubItems (1). Text) - CLng (item2.SubItems (1). Text)) * -1)

    ja lopuksi kertoa teille, että järjestys, jossa Mat ja ListView ei kommentoida tänne, koska haluan omistaa erillinen artikkeli.

    Tervehdys, Elisa

  4. Oscar sanoo:

    Ja kun tilaat minkä tahansa kentän laskevassa päivämäärä Date Created mm.

    • Elisa sanoo:

      Lisätään seuraava luokka ja liittää sen haluamaasi painiketta.

      Luokka ordenarPorFechaCreacion
      Toteuttaa IComparer

      Public Function Vertaa (ByVal x As Object, ByVal y As Object) _
      As Integer Toteuttaa System.Collections.IComparer.Compare
      Dim item1 Koska ListViewItem = CType (x, ListViewItem)
      Dim item2 Koska ListViewItem = CType (y, ListViewItem)
      Paluu Date.Compare (Date.parse (item1.SubItems (2). Text), Date.parse (item2.SubItems (2). Text))
      End Function
      End Class

  5. Roxana sanoo:

    Hei ihmiset.
    C # kuten olisi lause on samassa järjestyksessä?

  6. bebrafraptaug sanoo:

    dobry alku

  7. Joshua sanoo:

    Siinä tapauksessa, jos minulla on lista niin
    23 = 5 +5 +13
    5 = 1 +1 +1 +2
    4 = 3 +1
    jne. .....
    Voin tehdä niin tilaan sen numerot, että jos tulos on I 231 = 100 +100 +31 ei kuitenkaan sen jälkeen 23 = 5 +5 +13

  8. Victor sanoo:

    Hyvää iltapäivää,

    Pahoittelemme häiriötä, mutta tietää, miten voit lajitella kahden sarakkeen kerralla? jotain tällaista:
    XYZ
    aba -> 1
    BAA -> 2
    ja b -> 3

    ja jäljellä:

    XYZ
    ja b -> 3
    aba -> 1
    BAA -> 2

    Super kiitollinen jos voisitte auttaa ja jos ei, kiitos lähettämistä samat tiedot, jotka oli hyötyä myös minulle.

  9. Cinthia sanoi:

    Ja jos haluat mennessä ..... jotka eivät ole vain Luontiajankohtia

Kommentti