Comment puis-je faire une pause d'exécution jusqu'à ce que le nouveau formulaire soit fermé?
Je suis en train de Gagner les Formulaires de demande pour en savoir plus car je n'ai pas beaucoup d'expérience avec elle. Dans mon programme, dans le formulaire principal, j'ai un bouton. En cliquant dessus, il lance une autre forme. Le code est comme suit:
private void btn_AddCat_Click(object sender, EventArgs e)
{
this.Invoke(new MethodInvoker(() =>
{
form_NewCat NewCatForm = new form_NewCat();
NewCatForm.Show();
}));
MessageBox.Show("Oops!");
}
Le problème c'est que quand le nouveau formulaire est lancé, je veux de l'exécution du code dans le formulaire principal pour mettre en pause à ce point jusqu'à ce que le nouveau formulaire est fermé. Par exemple, dans le code ci-dessus, je ne veux pas de "Oops!" pour être imprimé jusqu'à ce que le nouveau formulaire est fermé. Comment puis-je y parvenir?
source d'informationauteur xbonez
Vous devez vous connecter pour publier un commentaire.
Vous n'avez pas besoin d'invoquer quand vous êtes dans le thread de l'INTERFACE utilisateur. Et vous êtes dans le thread de l'INTERFACE utilisateur en un clic de bouton de gestionnaire d'événements.
Vous pouvez vérifier l'dialogResult pour OK, Annuler, Oui, Non, etc si votre form_NewCat jeux de cette.DialogResult pour toute valeur avant la fermeture. C'est la façon habituelle de signal de la façon dont l'utilisateur a quitté le formulaire/dialogue.
Changer la ligne
à
Vous voulez une boîte de dialogue modale et je pense que vous avez besoin
NewCatForm.ShowDialog();
Changez simplement de Montrer à ShowDialog; cela vous permettra d'obtenir une valeur de retour indique si le formulaire a estimé qu'elle était sortie avec un statut spécifique (ok, annuler, etc).