DataGridView füllen, während es sichtbar ist

tecla

Erfahrenes Mitglied
Hallo zusammen
Ich habe ein Form mit einem DataGridView drin. Dieses füllt sich jetzt, bevor das Form sichtbar wird. Dies dauert leider sehr lange, wenn ich grosse Datenmengen habe, bei 7'000 Datensätzen ca. 1 1/2 Minuten. das sieht vereinfacht etwa so aus:

Code:
internal AdressAuswahl(ref List<PFA> pfaListe)
        {
            InitializeComponent();
            DatagridFuellen(ref pfaListe);
            base.ShowDialog();
         }
       private void DatagridFuellen(ref List<PFA> pfaListe)
        {
            foreach (PFA pfa in pfaListe)
            {
                string aktName1 = pfa.Name1;
                string aktName2 = pfa.Name2;
                string aktStrasse = pfa.Strasse;
                string aktPLZ = pfa.PLZ;
                string aktOrt = pfa.Ort;
                string aktID = Convert.ToString(pfa.IDPartner);

                string[] row = { aktName1, aktName2, aktStrasse, aktPLZ + aktOrt, 
                                     aktID };
                dataGridView1.Rows.Add(row);
            }
        }
Ist es irgendwie möglich, das Form schon zu öffnen, damit der Benutzer, die schon eingefüllten Daten sehen kann. Und auch sieht, dass das Ding dabei ist sich zu füllen?

Grüsse, Tecla
 
Zuletzt bearbeitet:
im OnShown
und vielleicht noch vorher Refresh ausführen damit das Formular schon mal angezeigt wird.
Die optimalste Lösung ist das natürlich nicht.
Schau lieber mal nach warum er solange zum laden braucht.
 
Herzlichen Dank für die Antworten.

Wenn ich das DataGridView im Shown fülle, kann man zwar zuschauen, da ich aber nach jeder Zeile refreshen müsst, dauert das ganze jetzt über 10 Minuten. Das ist also kein Weg.

Ich habe keine Ahnung, wie ich diesen Prozess verschnellern könnte. Mir scheint, dass das
Code:
DataGridView.Rows.Add(row);
so lange geht...
Die Daten hole ich aus der Datenbank, erstelle aus jeder Zeile ein Objekt und fülle es in die pfaListe. Diese übergebe ich dem Konstruktor von AdressAuswahl. Das alles geht keine zwei Sekunden. Erst die Füllerei dauert dann so lange...

Grüsse, Tecla
 
Ich habe die Lösung gefunden:
Man muss das DataGridView im virtuellen Modus implementieren!

Danke aber fürs mitdenken!
Grüsse, Tecla
 

Neue Beiträge

Zurück