2009-03-19 5 views
0

Arrière-plan: J'ai un formulaire avec un "effacer forme" et un bouton "annuler". Si j'ai des données invalides dans une liste déroulante et que vous cliquez sur l'un de ces boutons, l'événement de validation de la liste déroulante se déclenche. J'ai ajouté du code à l'événement de validation pour réussir quand "clear" ou "cancel" sont pressés.Validation des résultats d'événement dans la perte d'un clic sur un événement dans Winforms

Problème: Je m'attendrais à ce que la prochaine chose qui se passera est que les événements de clic de bouton se déclencheront. Dans le cas du bouton "annuler", c'est le cas. Mais l'événement pour le bouton "effacer" ne le fait pas. Je ne vois pas de différence entre les deux boutons/événements. Que se passe-t-il et comment puis-je résoudre ce problème?

Répondre

2

Vous ne savez pas ce qui vous affecte, aucun événement Click ne doit être exécuté lorsque vous définissez e.Cancel dans un gestionnaire d'événements de validation. Mais il y a une meilleure façon de le faire. Définissez la propriété CausesValidation des boutons sur False.

+0

TY, la propriété CausesValidation était exactement ce dont j'avais besoin! J'ai passé une heure hier à essayer toutes sortes de bêtises. J'apprécie beaucoup. – Jeff

0

Je suis tombé sur un autre scénario similaire. En cherchant une réponse je suis tombé sur cette vieille question que j'avais posée des mois d'agao! Dans ce cas, les événements de validation ont déplacé le focus du champ d'origine, de sorte que, au moment où l'événement du bouton était prêt à être déclenché, il ne pouvait plus le faire. Terminé en le résolvant en appelant explicitement l'événement bouton-clic de la validation.

Questions connexes