Gast
#1014663
Hallo,
ich schreibe gerade eine WindowsForms-Anwendung mit MS Visual Basic 2008
Express.
Das Programm bekommt Werte von einem Com-Port und schreibt Sie in eine
DataTable, die an ein DataGridView gebunden ist. Soweit so gut. Trifft
ein Datensatz ein, werden die Werte nach eintreffen des letztes Bytes
korrekt in eine neue Zeile der DataTable geschrieben.
Im GridView werden die neuen Zellen aber erst sichtbar, wenn die Daten
im GridView über einen Klick auf einen ColumnHeader neu sortiert werden.
Außerdem werden Zellen dargestellt, die sich außerhalb des sichtbaren
Bereiches befanden und durch verschieben des ScrollBar (wieder) sichtbar
werden.
Wenn die Routine, welche die neue Zeile erstellt, nicht durch das letzte
Datenbyte ausgelöst wird, sondern manuell durch einen Button, dann
funktioniert alles einwandfrei. Beide Varianten führen exakt den
gleichen Code aus.
Hier mal ein paar Code-Teile:
Dim values As New DataTable
values.Columns.Add("Spalte1")
values.Columns.Add("Spalte2")
...
values.Columns.Add("LetzteSpalte")
DataGridView.DataSource = values
values.Rows.Add(New Object() {CStr(Wert1), _
CStr(Wert2), _
...
CStr(LetzterWert)})
Die Methoden Refresh und Update haben keine Wirkung. Früher hab ich mal
mit Borland Delphi programmiert. Dort gab es Methoden wie Repaint oder
Redraw. Ich denke sowas könnte helfen, ich habe aber nichts dergleichen
in vb.net gefunden.
Hoffe hier kann mir jemand helfen. Habe bereits unzählige Beiträge in
diversen foren gelesen, die mir aber nicht weiter geholfen haben.
MfG, Enrico