Opret grupper i en listevisning (ListViewGroup)

Som jeg flere gange sagt, at listevisning kontrol er en af de mest brug, når udviklingen af et program i Visual Basic. Net.

I dag vil jeg vise en måde at få mere ud af denne kontrol, og også efterlade en meget mere attraktiv ved at oprette grupper og brugen af et baggrundsbillede.

for eksempel har vi brug for: en form og en listevisning. Skal se ud som følgende billede:

For at vise de resultater, vi har brug for data, og for at jeg oprettede en DataTable i hukommelsen og fyldte det med fire poster. Felterne er fornavn, efternavn, telefon og sted.

Jeg vil gerne vise i dette eksempel en liste over folk med deres navne og telefonnumre grupperet efter sted. Først analyserer følgende kode, hvis du ønsker at prøve det at se, hvordan det fungerer, og så vil jeg forklare et par ting.

 Dim dt As New DataTable
 dt.Columns.Add ("Navn")
 dt.Columns.Add ("Navn")
 dt.Columns.Add ("Telefon")
 dt.Columns.Add ("City")

 Dim dr Som DataRow = dt.NewRow

 dr ("Navn") = "John"
 dr ("Navn") = "Smith"
 dr ("Telefon") = "4587-9546"
 dr ("Location") = "Moron"
 dt.Rows.Add (dr)

 dr = dt.NewRow
 dr ("Navn") = "Marcelo"
 dr ("Navn") = "Roland"
 dr ("Telefon") = "7415-8945"
 dr ("Location") = "Moron"
 dt.Rows.Add (dr)

 dr = dt.NewRow

 dr ("Navn") = "Javier"
 dr ("Navn") = "Martinez"
 dr ("Telefon") = "4567-9654"
 dr ("Location") = "Castelar"
 dt.Rows.Add (dr)

 dr = dt.NewRow

 dr ("Navn") = "Estevan"
 dr ("Navn") = "Vazquez"
 dr ("Telefon") = "9452-4515"
 dr ("Location") = "Castelar"
 dt.Rows.Add (dr)

 ListView1.FullRowSelect = True
 ListView1.MultiSelect = False

 Dim As String = String.Empty grupoActual

 Dim g As New ListViewGroup

 Hver R er DataRow I dt.Rows

 Hvis r ("Location"). ToString <> Så grupoActual
 Ny ListViewGroup g = (r ("City"). ToString)
 grupoActual = r ("City"). toString
 ListView1.Groups.Add (g)
 End If

 Dim element som ny ListViewItem ("")
 item.SubItems.Add (r ("Navn"). toString)
 item.SubItems.Add (r ("Efternavn"). toString)
 item.SubItems.Add (r ("telefon"). toString)
 item.Group = g

 ListView1.Items.Add (post)
 Næste

Nå, de første linier refererer til oprettelsen af DataTable og udfyldning af data, og det vil ikke kommentere. Koncentrer dig om, hvordan at fylde listevisning.

Først skabte en for hver at sløjfe gennem alle posterne i tabellen, jeg har i hukommelsen. Så opretter jeg en tekst variabel (grupoActual) for at gemme gruppens navn (det sidste jeg tilføjet listevisning), og jeg tror også et objekt ListViewGroup (g). Det første jeg gøre for at starte ned optegnelser er at tildele stedet (som er det område, jeg ønsker at arbejde som en gruppe) til ListView1 og opbevarer data i variable grupoActual for fremtidige sammenligninger. Så opkræve et ListViewItem som altid i modsætning til at tilkendegivet, at denne post tilhører gruppen "g", tilføjede emne til ListView1 og klar. Passerer gennem de andre poster og udføre sammenligning kun oprette en ny gruppe, når byens forandringer.

Resultatet vil se sådan ud:

Nu for alt ser pænere ud, vil jeg anbefale at skabe et billede til baggrunden. Jeg tror, ​​jeg nævnte, at jeg foretrækker Photoshop, men du kan bruge et billede editor til at oprette en JPG til brug i baggrunden. Bemærk, at farverne ikke skal være meget stærk, fordi den er difilcultará læse dataene.

Her vil jeg efterlader et billede, som jeg bruger i dette eksempel:

For at bruge det simpelthen fra egenskaber listevisning, finde BackgroundImage og derefter tilføje billedet som vist nedenfor:

og du også nødt til at ændre egenskaben til Sand og klar BackgroundImageTiled. Jeg viser det endelige resultat:

Det er det, jeg håber de tjener.

11 Responses til "Opret gruppe i en listevisning (ListViewGroup)"

  1. Bitacoras.com siger:

    Information Bitacoras.com ...

    Rate i Bitacoras.com: Som jeg flere gange sagt, at listevisning kontrol er en af ​​de mest brug, når udviklingen af ​​et program i Visual Basic Net.. I dag vil jeg vise en måde at få mere ud af denne kontrol og også Dej ...

  2. Cesar sagde:

    Fremragende eksempel på en anden form for anvendelse af listevisning.

    mia spørgsmål, og jeg søgte og søgte, før du spørger, er, hvordan du aktiverer grupperet udskrive denne listevisning.

    tak

  3. Emilio Rafael Garcia Rios siger:

    Hey, hvad med mit spørgsmål er ...
    Og som det gør at gå listevisning gruppevis?

  4. anonym siger:

    Hej, jeg ønskede at vide, hvordan man gøre for at slette et valgt element i en listevisning.
    Tak.

  5. Alejandro siger:

    dette meget godt eksempel, jeg lægger i praksis, men jeg har et problem for eksempel: mine grupper bruger modulet.
    Mit spørgsmål er: Da jeg vise den anden gruppe?
    For eksempel, du i dit eksempel skrive dig item.group = g
    Hvad hvis jeg også vil vise en gruppe h i kolonnen med underpunkter?
    Bone vise mig bruger (gruppe), modulo (i en anden gruppe) og derefter resten.
    Jeg sætter pris på din tid og venlig hilsen.

  6. christian siger:

    som jeg kan forbinde listevisningen med udgang ¿?
    Jeg viser, at data i hver kolonne bd

  7. Li siger:

    I den sidste linje = listView1.Items.Add (post) får jeg følgende fejl:

    Kan ikke tilføje eller indsætte elementet "i mere end et sted. Skal fjerne det fra dets nuværende placering eller klone den.
    Parameter navn: post.

    Jeg teste det. Net 2008, fordi fejlen er?

  8. Federico siger:

    Undskyld jeg vb.NET sonde i 2008 og fungerer ikke.

    • Elisa siger:

      Federico: Da jeg lavede dette indlæg, de eksempler, jeg har lavet ved hjælp af Visual Studio 2008 og de arbejder. Jeg råder dig til at prøve det igen opmærksom på trinene.

      Luck.

  9. Jorge siger:

    god morgen, Greetings! ønskede at vide, hvordan man gruppere celler ville gøre listevisning, og at denne kontrol ikke har flette ejendom. Venter på at gøre mig forklare.

    =)

  10. carlos siger:

    Hej gode bidrag tjent mig godt,
    men jeg ville vide eller kunne hjælpe mig med at sortere hver gruppe med henblik på at gennemføre projektet jeg udviklet gennem
    forhånd gennem

Kommentar