Au début d'une fonction VB .NET, je supprime un gestionnaire d'événements et l'ajoute à la fin de la fonction car le code de la fonction déclencherait ces événements et je ne veux pas qu'ils se déclenchent pendant la durée de la fonction. Cela fonctionne généralement, mais j'ai rencontré quelques situations où l'événement est toujours appelé même si je l'ai déjà supprimé. Parfois, le supprimer deux fois au début de la fonction le fixe, mais d'autres fois, peu importe combien de fois je l'enlève, il se déclenche toujours. Des idées sur ce qui pourrait causer cela?Le gestionnaire d'événements ne se retire pas?
Modifier
Le code est dans un formulaire qui a un datagridview en mode virtuel. Je veux exécuter certaines opérations qui déclencheront l'événement CellValueNeeded pour le datagridview sans que cet événement soit déclenché (parce qu'il interférera).
Public Sub DoEventRaisingStuff()
RemoveHandler grid.CellValueNeeded, AddressOf grid_CellValueNeeded
'Do things that would trigger CellValueNeeded
AddHandler grid.CellValueNeeded, AddressOf grid_CellValueNeeded
End Sub
Suppression du gestionnaire à plusieurs reprises n'empêche pas l'événement de tir, il ne semble pas être ajouté plusieurs fois par un autre accident.
Existe-t-il un moyen de savoir quels gestionnaires d'événements sont actifs?
Si vous postez le code, il devrait être plus facile de vous aider. –
C'est vrai, mais je ne sais pas vraiment quoi publier car je ne sais pas où est le problème et le programme est assez grand. Je me demandais plus simplement si quelqu'un d'autre a déjà rencontré ce problème et qu'est-ce qui l'a résolu pour eux. – davidscolgan
Vous pouvez au moins afficher le code correspondant à la fonction spécifique dont vous parlez. –