Δημιουργία ομάδων σε ListView (ListViewGroup)

Όπως έχω πει πολλές φορές, ο έλεγχος listview είναι ένα από τα πιο χρήση κατά την ανάπτυξη μιας εφαρμογής σε Visual Basic. NET.

Σήμερα θέλω να σας δείξω έναν τρόπο να πάρουν περισσότερα από τον έλεγχο αυτό και επίσης να αφήσετε πολύ περισσότερο ελκυστικό με τη δημιουργία ομάδων και τη χρήση μιας εικόνας φόντου.

για παράδειγμα, χρειαζόμαστε: μια μορφή και μια listview. Πρέπει να μοιάζει με την παρακάτω εικόνα:

Για να εμφανίσετε τα αποτελέσματα που χρειαζόμαστε δεδομένα, και γι 'αυτό δημιουργήθηκε ένα DataTable στη μνήμη και το γέμισε με τέσσερις δίσκους. Τα πεδία είναι Όνομα, Επώνυμο, Τηλέφωνο και Τοποθεσία.

Θέλω να δείξω σε αυτό το παράδειγμα μια λίστα των ατόμων με τα ονόματά τους και τους αριθμούς τηλεφώνου ομαδοποιούνται ανά τοποθεσία. Πρώτη αναλύσει τον ακόλουθο κώδικα, εάν θέλετε να το δοκιμάσετε για να δείτε πώς λειτουργεί και στη συνέχεια θα εξηγήσω μερικά πράγματα.

 Δημ. dt Όπως Νέα DataTable
 dt.Columns.Add ("Όνομα")
 dt.Columns.Add ("Όνομα")
 dt.Columns.Add («Τηλέφωνο»)
 dt.Columns.Add ("Πόλη")

 Δημ. dr Όπως DataRow = dt.NewRow

 dr ("Όνομα") = "Ιωάννης"
 dr ("Όνομα") = "Σμιθ"
 dr ("Τηλέφωνο") = "4587-9546"
 dr ("Τοποθεσία") = "βλάκας"
 dt.Rows.Add (DR)

 dr = dt.NewRow
 dr ("Όνομα") = "Μαρσέλο"
 dr ("Όνομα") = "Roland"
 dr ("Τηλέφωνο") = "7415-8945"
 dr ("Τοποθεσία") = "βλάκας"
 dt.Rows.Add (DR)

 dr = dt.NewRow

 dr ("Όνομα") = "Javier"
 dr ("Όνομα") = "Martinez"
 dr ("Τηλέφωνο") = "4567-9654"
 dr ("Τοποθεσία") = "Castelar"
 dt.Rows.Add (DR)

 dr = dt.NewRow

 dr ("Όνομα") = "Estevan"
 dr ("Όνομα") = "Vazquez"
 dr ("Τηλέφωνο") = "9452-4515"
 dr ("Τοποθεσία") = "Castelar"
 dt.Rows.Add (DR)

 ListView1.FullRowSelect = True
 ListView1.MultiSelect = False

 Δημ. As String = grupoActual String.Empty

 Δημ. ζ Όπως Νέα ListViewGroup

 Για κάθε φάση Ε Όπως DataRow Σε dt.Rows

 Αν r ("Πόλη"). ToString <> Τότε grupoActual
 Νέα ListViewGroup g = (r ("Πόλη"). ToString)
 grupoActual = r ("Πόλη"). toString
 ListView1.Groups.Add (ζ)
 End If

 Δημ. στοιχείου ως νέα ListViewItem ("")
 item.SubItems.Add (r ("Όνομα"). toString)
 item.SubItems.Add (r ("Επώνυμο"). toString)
 item.SubItems.Add (r («Τηλέφωνο»). toString)
 item.Group = g

 ListView1.Items.Add (στοιχείο)
 Επόμενη

Λοιπόν, οι πρώτες γραμμές αναφέρονται στη δημιουργία του DataTable και συμπλήρωση των στοιχείων και δεν θα σχολιάσω. Επικεντρωθείτε στο πώς να γεμίσει το listview.

Πρώτη μπορώ να δημιουργήσω ένα για κάθε βρόχο με όλες τις εγγραφές στον πίνακα που έχω στη μνήμη. Τότε μπορώ να δημιουργήσω μια μεταβλητή κειμένου (grupoActual) για να αποθηκεύσετε το όνομα της ομάδας (η τελευταία έβαλα το listview) και πιστεύω επίσης ένα ListViewGroup αντικείμενο (ζ). Το πρώτο πράγμα που κάνω για να ξεκινήσει τις εγγραφές είναι η εκχώρηση του χώρου (που είναι το πεδίο που θέλω να εργαστούν ως ομάδα) να ListView1 και να κρατήσει τα δεδομένα στην μεταβλητή grupoActual για μελλοντικές συγκρίσεις. Στη συνέχεια, χρεώνουν ListViewItem, όπως πάντα, σε αντίθεση με ότι αναφέρεται ότι η θέση αυτή ανήκει στην ομάδα "g", πρόσθεσε το στοιχείο για να ListView1 και έτοιμο. Περνώντας μέσα από τις άλλες εγγραφές που πραγματοποιήθηκαν με τη σύγκριση και να δημιουργήσει μια νέα ομάδα μόνο όταν αλλάζει η θέση.

Το αποτέλεσμα θα μοιάζει με:

Τώρα για όλα να φαίνονται πιο ωραία, συστήνω δημιουργώντας μια εικόνα για το φόντο. Σας ανέφερα νομίζω ότι προτιμώ το Photoshop, αλλά μπορείτε να χρησιμοποιήσετε οποιοδήποτε πρόγραμμα επεξεργασίας εικόνας για να δημιουργήσετε ένα αρχείο JPG για χρήση στο παρασκήνιο. Σημειώστε ότι τα χρώματα δεν πρέπει να είναι πολύ ισχυρή, διότι είναι difilcultará ανάγνωση των δεδομένων.

Εδώ αφήνω μια εικόνα που μπορώ να χρησιμοποιήσω σε αυτό το παράδειγμα:

Για να το χρησιμοποιήσετε μόνο από τις ιδιότητες του listview, βρείτε το BackgroundImage και στη συνέχεια προσθέστε την εικόνα όπως φαίνεται παρακάτω:

και μπορείτε επίσης να αλλάξετε την ιδιότητα σε True και έτοιμο BackgroundImageTiled. Δείχνω το τελικό αποτέλεσμα:

Αυτό ήταν, ελπίζω να χρησιμεύσει.

12 απαντήσεις για "Δημιουργία ομάδων σε ListView (ListViewGroup)"

  1. Bitacoras.com λέει:

    Πληροφορίες Bitacoras.com ...

    Τιμή στο Bitacoras.com: Όπως είπα πολλές φορές, ο έλεγχος listview είναι ένα από τα πιο χρήση κατά την ανάπτυξη μιας εφαρμογής σε Visual Basic Net.. Σήμερα θέλω να σας δείξω έναν τρόπο να πάρουν περισσότερα από τον έλεγχο αυτό και επίσης Dej ...

  2. Σέζαρ είπε:

    Εξαιρετικό παράδειγμα ενός άλλου τύπου χρήση των listview.

    ΜΙΑ ερώτηση και έψαξα παντού, πριν ζητήσει είναι το πώς να ενεργοποιήσετε συμπλέγματος εκτυπώσετε το listview.

    ευχαριστίες

  3. Emilio Rafael Garcia Rios λέει:

    Γεια σου, πώς για το ερώτημά μου είναι ...
    Και όπως και να περπατήσει την ομάδα listview από την ομάδα;

  4. Ανώνυμος λέει:

    Γεια σας, ήθελα να ξέρω πώς να το κάνουμε για να διαγράψετε ένα επιλεγμένο στοιχείο σε μια listview.
    Σας ευχαριστώ.

  5. Alejandro λέει:

    αυτό το πολύ καλό παράδειγμα, θέτω σε εφαρμογή, αλλά έχω ένα πρόβλημα, για παράδειγμα: οι ομάδες μου είναι μονάδα user.
    Η ερώτησή μου είναι: Όπως δείχνουν τη δεύτερη ομάδα;
    Για παράδειγμα, το παράδειγμα σας να δημοσιεύσετε item.group = g
    Τι γίνεται αν θέλω επίσης να δείχνουν η ομάδα στη στήλη των υποστοιχεία;
    Οστών δείξε μου το χρήστη (ομάδα), modulo (σε άλλη ομάδα) και στη συνέχεια το υπόλοιπο.
    Εκτιμώ το χρόνο σας και τις καλύτερες ευχές.

  6. christian λέει:

    που μπορώ να συνδέσετε το listview με acces ¿?
    Δείχνω ότι τα δεδομένα σε κάθε στήλη BD

  7. Li λέει:

    Στην τελευταία γραμμή = listView1.Items.Add (τεμάχιο) παίρνω το εξής σφάλμα:

    Δεν μπορείτε να προσθέσετε ή να εισαγάγετε το στοιχείο "σε περισσότερες από μία ιστοσελίδα. Πρέπει να το αφαιρέσετε από την τρέχουσα θέση του ή να κλωνοποιήσουν.
    Όνομα Παράμετρος: το σημείο.

    Είμαι η δοκιμή. Καθαρή 2008, επειδή το σφάλμα αυτό;

  8. Federico λέει:

    Συγγνώμη vb.NET καθετήρα το 2008 και δεν λειτουργεί.

    • Ελισσαιέ λέει:

      Federico: Όταν έκανα αυτή τη θέση, τα παραδείγματα που έκανα χρησιμοποιώντας οπτικό στούντιο 2008 και οι εργασίες τους. Σας συμβουλεύω να το δοκιμάσω ξανά δίνοντας προσοχή στα βήματα.

      Τύχη.

  9. Jorge λέει:

    καλημέρα, Χαιρετισμούς! ήθελαν να ξέρουν πώς να τα κύτταρα ομάδα θα κάνει την listview, και ότι ο έλεγχος αυτός δεν έχει συγχώνευση ιδιοκτησίας. Αναμονή για την κατασκευή μου να εξηγήσω.

    =)

  10. Carlos λέει:

    Γεια σου καλή συνεισφορά από εμένα εξυπηρέτησε καλά,
    αλλά θα ήθελα να ξέρω ή θα μπορούσε να με βοηθήσει να ταξινομήσετε κάθε ομάδα προκειμένου να υλοποιήσει το σχέδιο θα αναπτυχθεί μέσα από
    εκ των προτέρων μέσω

  11. Sergio Hernandez, δήλωσε:

    Εξαιρετική δουλειά, αντιγραφή και επικόλληση. Δουλεύει καλά.

    Χαιρετισμούς και ευχαριστίες

Σχόλιο