DataGridView Anzeige nicht aktualisieren
-
Hallo,
ich programmiere zur Zeit mit VisualStudio 2005 in C++ und habe in meiner Windows-Forms Anwendung ein DataGridView, welches mir Daten anzeigen soll. Das DataGridView umfasst ca. 80 "Rows" (10 Columns) und die Daten werden zur Laufzeit ermittelt und sollen alle 400ms aktualisiert dargestellt werden. Das DataGridView benutze ich hierbei im ungebundenen Modus.
Nun zu meinem eigentlichen Problem:
Die aktualisierten Daten werden Zeile für Zeile in das DataGridView reingeschrieben, diese Art der Aktualisierung ist auch durch den zeilenweisen Aufbau auf dem Monitor sichtbar. Gibt es eine Möglichkeit die Anzeige des DataGridViews während dieser Aktualisierung zu unterbinden und erst nachdem die Aktualisierung erfolgt ist alles komplett auf einmal darzustellen???
Befehle wie DGV->SuspendLayout() brachten nicht den gewünschten Erfolg, als weiteren Lösungsansatz versuchte ich den gebundenen Modus zu verwenden und dann mittels SuspendBinding() das gewünschte Ergebnis zu erzielen. Das habe ich aber leider auch nicht hingekriegt. (Im Zusammenhang mit dem gebundenen Modus, also der Verwendung von einer BindingSource suche ich noch dringend ein Beispiel, bei dem als Datenquelle keine Datenbank verwendet wird. Am Besten mit Text und Codebeispiel. Habe leider bisher nichts vernünftiges gefunden).
Vorab Danke für Eure Hilfe...
-
Zeig mal den Quellcode, der das GridView befüllt
-
Hier mal der Code, der alle 400ms das DataGridView mit den aktualisierten Daten füllt:
int iRowIndex = 0; while(iRowIndex < iAnzahlFramesDMonitor){ //Es müssen alle Reihen mit Daten gefüllt werden //Hier ist sonst der Code zur Ermittlung des zugehörigen aoDataPacket this->dataGridView1->Rows[iRowIndex]->Cells["Col_Zyklus"]->Value::set(aoDataPacket[1]->ToString()); this->dataGridView1->Rows[iRowIndex]->Cells["Col_Zeit"]->Value::set(aoDataPacket[4]->ToString()); this->dataGridView1->Rows[iRowIndex]->Cells["Col_Kanal"]->Value::set(aoDataPacket[3]->ToString()); this->dataGridView1->Rows[iRowIndex]->Cells["Col_Daten"]->Value::set(sDaten); this->dataGridView1->Rows[iRowIndex]->Cells["Col_Datenlaenge"]->Value::set(aoDataPacket[5]->ToString()); iRowIndex++; } //-> while(iRowIndex < iAnzahlFramesDMonitor)