2009-03-26 7 views
6

Baby Schritte rollen ... Ich habe ein Formular mit einem Datengitter an eine Tabelle gebunden. Ich habe einige Textfelder auf dem Formular, die an die Tabelle [Spalten] gebunden sind. Wenn ich also das Raster durchblättere, zeigen die Textfelder entsprechende Daten an.WinForms C# DataGridView erzwingen aktualisieren

Ich gehe in einen "Bearbeitungsmodus" der Textfelder und ändern Sie den Inhalt und drücken Sie eine Schaltfläche "Speichern". Das Raster aktualisiert den geänderten Kontext nicht, bis ich physisch in die Zelle klicke, die einen Aufruf der Tabellen OnChanging und OnChanged-Ereignisse erzwingt ... Wie kann ich FORCE erzwingen, welches Ereignis auch immer die Tabelle am Ende von "leeren" wird meine Bearbeitung und habe es in der Datagridview aktualisiert.

Danke

Antwort

10

Haben Sie versucht, die Invalidate-Methode von dataGridView aufzurufen?

this.dataGridView1.Invalidate(); 
+0

Mein schlechtes. Das "Click" -Ereignis der Schaltfläche auf der Formularebene wurde nie direkt ausgelöst, da ich eine benutzerdefinierte Klasse mit einem Standardmethodenverhalten verwendet hatte. Nach der Anpassung, wie es nötig ist, funktioniert es perfekt ... Allerdings habe ich InvalidateROW für den einen Datensatz in Frage. Vielen Dank – DRapp

1

Verwenden Sie eine BindingSource? Wenn ja, rufen Sie die Methode EndEdit für das Leave-Ereignis der TextBox auf.

+0

Keine Auswirkungen. Sowohl das Raster als auch die Textfelder sind an die DataTable-Instanz gebunden, aber ich kann nicht erzwingen, dass das Tables "OnChanging"/"OnChanged" -Ereignis ausgelöst wird, wenn ich nach dem Speichern manuell in das Raster klicke bearbeiten. – DRapp