6
votes

Comment arrêter l'exécution de la dialogue basée sur une condition?

Je suis un problème avec le scénario suivant sur les formulaires Windows:

J'ai créé un formulaire avec deux boutons, chaque bouton a été attribué à la boîte de dialogue Comportement OK et à la dialogResult Annuler, respectivement. Mais sur la base de certaines conditions, j'ai besoin d'arrêter l'exécution du bouton OK. Le problème est que si je viens de faire un retour comme celui-ci: xxx

Le résultat de la boîte de dialogue permet de retourner la réponse OK sur la forme parente.

J'ai besoin Pour arrêter l'exécution de l'événement et ne pas renvoyer une réponse tant que l'utilisateur corrige les informations sur le formulaire. En d'autres termes, l'utilisateur doit être ramené au formulaire pour corriger les données manquantes ou incorrectes.


0 commentaires

3 Réponses :


1
votes

Envisagez de taper dans l'événement de la section de formes et utilisez la propriété Annuler de l'événement arguments pour annuler la fermeture de formulaire.

Voici une page Web qui discute de l'idée; C'est VB, mais vous aurez l'idée:

http://www.vbinfozine.com/t_wfdlg.shtml


0 commentaires

5
votes

Personnellement, je n'utiliserais pas dialogresult s sur les boutons de ce scénario. J'ai seulement tendance à définir la boîte de dialogue quand il n'y a que des options distinctes qui ne nécessitent aucune logique supplémentaire (c.-à-d. Faire une boîte de messagerie personnalisée).

Ce que je ferais, c'est juste envoyer le dialogrutisme vous-même sur le succès: xxx


1 commentaires

Je ne. Windows Ui La conception exige que la boîte de dialogue se ferme lorsque l'utilisateur appuie sur la touche Entrée et que le bouton par défaut (OK) est marqué. La solution de contournement est simple, il suffit de définir la dialogue à aucun.



8
votes

Comme Hans Passant mentionne dans un commentaire, définissez simplement la dialogresult sur Aucun!
Comme ceci: xxx


2 commentaires

Sur le prochain clic alors, ce ne sera toujours pas


@Crice: Non, ce ne sera pas. Dans le prochain clic, la boîte de dialogue du formulaire aura à nouveau été réglée sur OK par le bouton car la propriété de dialogResult du bouton est définie sur OK. (Peut-être pensez-vous que je voulais dire régler le dialogoperty à l'och le bouton sur aucun?)