2009-03-26 8 views
6

Baby steps rolling ... J'ai un formulaire avec une grille de données liée à une table. J'ai quelques zones de texte sur le formulaire lié à la table [colonnes], de sorte que lorsque je fais défiler la grille, les zones de texte affichent les données correspondantes.WinForms C# DataGridView forcer l'actualisation

Je vais dans un "mode d'édition" des zones de texte et change le contenu et appuie sur un bouton de sauvegarde. La grille ne rafraîchit pas le contexte modifié jusqu'à ce que je clique physiquement dans la cellule qui force un appel aux événements OnChanging et OnChanged des tables ...

Comment puis-je FORCE quel que soit l'événement pour "vider" la table à la fin de mon édition et l'ai rafraîchi dans le datagridview.

Merci

Répondre

10

Avez-vous essayé d'appeler la méthode Invalidate de dataGridView?

this.dataGridView1.Invalidate(); 
+0

Mon mauvais. L'événement "Click" du bouton de niveau de formulaire n'a jamais été déclenché directement depuis que j'avais utilisé une classe personnalisée qui avait un comportement de méthode par défaut. Après avoir ajusté cela au besoin, cela fonctionne parfaitement ... Cependant, j'ai fait InvalidateROW pour le seul enregistrement en question. Merci – DRapp

1

Utilisez-vous un BindingSource? Si tel est le cas, appelez sa méthode EndEdit dans l'événement Leave de TextBox.

+0

Aucun impact. La grille (évidemment) et les zones de texte sont liés à l'instance DataTable, mais il semble que je ne peux pas forcer l'événement Tables "OnChanging"/"OnChanged" qui se produit lorsque je clique manuellement dans la grille après avoir enregistré un modifier. – DRapp

Questions connexes