Erstellen von Gruppen in einem ListView (ListViewGroup)

Wie ich schon mehrmals gesagt, ist das ListView-Steuerelement eine der Einsatz beim Entwickeln einer Applikation in Visual Basic. NET.

Heute möchte ich einen Weg zeigen, um mehr aus diesem Griff zu bekommen und lassen auch viel attraktiver durch die Schaffung von Gruppen und die Verwendung eines Hintergrundbildes.

zum Beispiel brauchen wir: ein Formular und eine Listenansicht. Sollte wie folgt aussehen:

Um die Ergebnisse brauchen wir Daten angezeigt werden, und dafür habe ich eine DataTable im Speicher und füllte ihn mit vier Datensätze. Die Felder sind Name, Nachname, Telefonnummer und Standort.

Ich möchte in diesem Beispiel zeigen eine Liste von Personen mit Namen und Telefonnummern Gruppierung nach Speicherort. Zunächst analysieren Sie den folgenden Code, wenn Sie es versuchen, um zu sehen wie es funktioniert und dann werde ich ein paar Dinge erklären wollen.

 Dim dt As New DataTable
 dt.Columns.Add ("Name")
 dt.Columns.Add ("Name")
 dt.Columns.Add ("Phone")
 dt.Columns.Add ("City")

 Dim dr As DataRow = dt.NewRow

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

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

 dr = dt.NewRow

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

 dr = dt.NewRow

 dr ("Name") = "Estevan"
 dr ("Name") = "Vazquez"
 dr ("Phone") = "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

 Für jedes r Wie DataRow In dt.Rows

 Wenn r ("City"). ToString <> Dann grupoActual
 New ListViewGroup g = (r ("City"). ToString)
 grupoActual = r ("City"). ToString
 ListView1.Groups.Add (g)
 End If

 Dim Element als neue ListViewItem ("")
 item.SubItems.Add (r ("Name"). ToString)
 item.SubItems.Add (r ("Nachname"). ToString)
 item.SubItems.Add (r ("Phone"). ToString)
 item.Group = g

 ListView1.Items.Add (item)
 Nächste

Nun beziehen sich die ersten Zeilen zur Entstehung der DataTable und Ergänzung von Daten, und es wird nicht zu kommentieren. Konzentrieren Sie sich auf, wie die ListView zu füllen.

Zuerst erstelle ich eine For Each-Schleife durch alle Datensätze in der Tabelle habe ich in Erinnerung. Dann erstelle ich eine Textvariable (grupoActual), um den Namen der Gruppe zu speichern (die letzte, fügte ich das ListView) und ich denke auch, ein Objekt ListViewGroup (g). Das erste, was ich tun, um zu starten unten die Datensätze ist es, den Standort (das ist das Feld Ich will mich als einer Gruppe zu arbeiten), um ListView1 zuzuordnen und zu halten, dass die Daten in der Variablen grupoActual für zukünftige Vergleiche. Dann laden ein ListViewItem wie immer anders als angegeben, dass dieser Punkt auf die Gruppe "G" gehört, fügte das Element, um ListView1 und fertig. Durch die andere Aufzeichnungen und führen Sie den Vergleich nur eine neue Gruppe erstellen, wenn die Stadt verändert.

Das Ergebnis wird wie folgt aussehen:

Jetzt für alles, was schöner aussehen, empfehle ich ein Image für den Hintergrund. Ich glaube, ich erwähnte, dass ich lieber Photoshop, aber Sie können jedes beliebige Bild-Editor verwenden, um eine JPG für den Einsatz in den Hintergrund zu schaffen. Beachten Sie, dass Farben nicht sehr stark sein, weil es difilcultará Lesen der Daten ist.

Hier lasse ich ein Bild, dass ich in diesem Beispiel verwenden:

Um es einfach zu verwenden, von den Eigenschaften des ListView, finden die BackgroundImage und fügen Sie das Bild wie unten dargestellt:

und Sie haben auch die Eigenschaft auf True und bereit BackgroundImageTiled ändern. Ich zeige das Endergebnis:

Das ist es, ich hoffe, sie dienen.

11 Responses to "Erstellen von Gruppen in einem ListView (ListViewGroup)"

  1. Informationen Bitacoras.com ...

    Rate in Bitacoras.com: Wie ich schon mehrmals gesagt, ist das ListView-Steuerelement eine der Einsatz beim Entwickeln einer Applikation in Visual Basic. NET. Heute möchte ich einen Weg, um mehr aus dieser Kontrolle und auch bekommen dej zeigen ...

  2. Cesar sagte:

    Hervorragendes Beispiel für eine andere Art der Nutzung der ListView.

    mia Frage, und ich suchte überall vor gefragt ist, wie man damit geclusterten drucken ListView.

    Dank

  3. Emilio Rafael Garcia Rios sagt:

    Hey, wie wär meine Frage ist ...
    Und wie es zur Listenansicht Gruppe für Gruppe laufen tut?

  4. anonym sagt:

    Hallo, ich wollte wissen, wie Sie tun, um ein ausgewähltes Element in einem ListView löschen.
    Danke.

  5. Alejandro sagt:

    Diese sehr gutes Beispiel, bin ich in die Praxis umsetzen, aber ich habe ein Problem zum Beispiel: Meine Gruppen sind Benutzer-Modul.
    Meine Frage ist: Wie ich die zweite Gruppe zu zeigen?
    Zum Beispiel, in Ihrem Beispiel Sie Beiträge verfassen Sie item.group = g
    Was, wenn ich möchte auch eine Gruppe H in der Spalte der Unterpunkte zu zeigen?
    Knochen zeigen mir Benutzer (Gruppen), Modulo (in einer anderen Gruppe) und dann den Rest erledigen.
    Ich schätze Ihre Zeit und beste Grüße.

  6. Christian sagt:

    wie kann ich die ListView mit acces ¿verbinden?
    I zeigen, dass die Daten in jeder Spalte bd

  7. Li sagt:

    In der letzten Zeile = listView1.Items.Add (item) bekomme ich folgende Fehlermeldung:

    Kann nicht hinzugefügt oder legen Sie die Position "in mehr als einem Standort. Muss es von seinem derzeitigen Standort zu entfernen oder klonen.
    Parametername: Element.

    Ich teste es. Net 2008, weil dieser Fehler ist?

  8. Federico sagt:

    Sorry, ich vb.NET Sonde im Jahr 2008 und funktioniert nicht.

    • Elisa sagt:

      Federico: Wenn ich diesen Post gemacht, die Beispiele, die ich gemacht mit Visual Studio 2008 und sie funktionieren. Ich rate Ihnen, es erneut zu versuchen Aufmerksamkeit auf den Stufen.

      Luck.

  9. Jorge sagt:

    Guten Morgen, Grüße! wollte wissen, wie man Zellen Gruppe würde die ListView zu machen, und dass diese Kontrolle nicht fusionieren Eigentum. Warten macht mich das erklären.

    =)

  10. Carlos sagt:

    Hallo guten Beitrag hat mir gute Dienste,
    aber ich würde es wissen, oder könnte mir helfen, jede Gruppe zu sortieren, um das Projekt, das ich durch Umsetzung entwickelt
    vorher durch

Kommentar