DatagridView + Controles simples Databindés. Comment désactiver les évènements l
BasicZx81
Messages postés140Date d'inscriptionsamedi 5 mars 2011StatutMembreDernière intervention13 août 2013
-
8 mars 2012 à 17:36
BasicZx81
Messages postés140Date d'inscriptionsamedi 5 mars 2011StatutMembreDernière intervention13 août 2013
-
11 mars 2012 à 09:16
Bonjour à tous,
j'ai un problème lié au Databinding que je n'arrive pas vraiment pas à résoudre, c'est pourquoi je fait appel à vous, espérant qu'une solution existe.
J'ai un Datagridview ainsi qu'une dizaine de contrôles simples, tous liés à une source de données (BindingSource).
Le problème est que lorsque l'utilisateur change de ligne du DataGridView, cela exécute les procédures attachées aux évènements de tous les contrôles simples (du fait des changements de valeurs en passant d'une ligne à une autre) hors j'aimerais pouvoir désactiver à ce moment précis tous ces évènements à l’exception de l’évènement "changement de ligne du dataGridView". En effet je dois pouvoir utiliser un évènement de changement de ligne dans lequel j'ai besoin d'exécuter du code pour traiter la ligne sur laquelle l'utilisateur clique et seulement après je dois réactiver les évènements attachés aux contrôles simples.
Pour cela j'ai crée une procédure destinée a activer/désactiver l'ensemble des évènements attachés aux contrôles simple du type :
Public Sub ActiveControlesHandler(ByVal State As Boolean)
If State True And ControleHanddlerIsActive False Then
AddHandler ComboBox1.SelectedIndexChanged, AddressOf EventFromControleUser
AddHandler CheckBox1.CheckedChanged, AddressOf EventFromControleUser
' ..............etc
ControleHanddlerIsActive = True
ElseIf State False And ControleHanddlerIsActive True Then
RemoveHandler ComboBox1.SelectedIndexChanged, AddressOf EventFromControleUser
RemoveHandler CheckBox1.CheckedChanged, AddressOf EventFromControleUser
' ..............etc
ControleHanddlerIsActive = False
End If
End Sub
Le problème est de trouver le moment opportun pour exécuter cette procédure. j'ai essayé plusieurs évènements du DataGridView ou du Bindingsource et tous s’exécute trop tard, c'est à dire que ce sont toujours les évènements des contrôles simples qui s’exécute en premier avant que j'ai le temps de les désactiver.
Je pensais que les développeurs du Framwork aurais bien fait les choses en offrant des des fonctions simple pour désactiver ces évènements et je m’éttonne que cela soit un vrai casse-tête pour faire cela dans un environnement DataBindé. Et avec plus d'une dizaine de contrôles, ce sont 20 ou 30 évènements qui se déclenche en cascade je vous laisse imaginer le complexité du débogage et la maintenance du code si on ne peut pas les désactiver.
Merci de me venir en aide si vous pouvez, je n'ai plus que ce problème à régler pour finir mon appli et je galère vraiment.
A voir également:
DatagridView + Controles simples Databindés. Comment désactiver les évènements l
BasicZx81
Messages postés140Date d'inscriptionsamedi 5 mars 2011StatutMembreDernière intervention13 août 2013 11 mars 2012 à 09:16
Rebonjour,
Visiblement il y a un truc qui m'échappe avec le Databinding et j'ai l'impression de ne pas être le seul compte tenu de l'absence de réponses...
Ce n'ai pas faute d'avoir cherché partout sur Internet, les Tutorial sont inexistants ou bien très insuffisant.
Si quelqu'un à un bon livre à me conseiller ça serait sympa de sa part.
La ou je bloque le plus c'est sur comment intercepter les modifications et la validation du formulaire.
En vous remerciant par avance.