bonjour
code C# visual studio winform
Je voudrais savoir comment fermé la fenêtre de la méthode statique show de la classe MessageBox DialogResult show(string ex);
qui apparais lors d'un clic sur button ?
-----
bonjour
code C# visual studio winform
Je voudrais savoir comment fermé la fenêtre de la méthode statique show de la classe MessageBox DialogResult show(string ex);
qui apparais lors d'un clic sur button ?
en cliquant sur un bouton de la boite de dialogue, dialogResult contient le bouton appuyé
je n'est que la croix sur la fenêtre
la croix ne ferme pas la fenêtre
avec ce code ?
a la place de e.cancel ,je le remplace par this.close();?
private void button1_Click(object sender, System.EventArgs e)
Code:{ DialogResult dialog = MessageBox.Show("message", "message", MessageBoxButtons.YesNo); if (dialog == DialogResult.No) { e.Cancel = true; } }
Dernière modification par JPL ; 15/03/2021 à 20h01. Motif: ajout de la balise Code
Bonsoir,
Le premier message n'a pas de sens, mais je crois que tu veux, après que l'utilisateur ai cliqué sur un bouton avec le label "Quitter", demander confirmation via une MessageBox présentant deux boutons, Oui et Non, et qu'en cas de clic sur le bouton Oui seulement, la fenêtre courante soit fermée (et non pas seulement la MessageBox, qui est, elle, fermée "automatiquement") ?
Si c'est le cas, tu as d'abord une faute sur la classe MessageBoxButton qui ne prends pas de s.
Ensuite, tu peux personnaliser les message affiché (message) et le titre de la boîte de dialogue (caption) :
Code:DialogResult dialog = MessageBox.Show("Êtes-vous sûr de vouloir quitter l'application ?", "Confirmation", MessageBoxButton.YesNo); if (dialog == DialogResult.Yes) { this.Close(); // ou Application.Exit(0); suivant le cas... }
Dernière modification par Ikhar84 ; 15/03/2021 à 22h05.
J'ai glissé Chef !
Dans ton code, le e.cancel concerne le bouton cliqué, puisque e est l'événement du bouton.
Pour fermer l'application ou la fenêtre, il faut que tu dises explicitement que c'est la fenêtre que tu veux fermer.
Mais, personnellement, je gérerai la fermeture de la fenêtre dans son événement FormClosing qui se déclenche quand on demande la fermeture de la fenêtre (par la croix de fermeture ou par l'appel à la fonction Form.close() ). Dans ce bouton, j'appelerai donc directement Form.Close(), comme ça le message de confirmation n'apparait qu'une seule fois et est géré à la demande de fermeture de la fenêtre uniquement.
Code:private void button1_Click(object sender, EventArgs e) { this.Close(); } private void Form1_FormClosing(object sender, FormClosingEventArgs e) { DialogResult dialog = MessageBox.Show("Voulez-vous vraiment quitter l'application ?", "Fermeture", MessageBoxButtons.YesNo); if (dialog == DialogResult.No) { e.Cancel = true; } }
salut
j'ai essayé de passé trois paramètre a la méthode statique de la class MessageBox
mais j'ai l'erreur 1 No overload for method 'Show' takes '3' arguments
lorsque j'appuie sur le bouton j'ai une fenêtre avec le message en bas et le bouton ok en haut comme sur l'image posté
lorsque j'écris ce code
j'appuie sur ok,la petit croix s'affiche dans la fenêtre principal pour quitté l'applicationCode:r = MessageBox.Show(output); if (r == DialogResult.Yes) { this.Close(); }
mais,je voudrais que le message ce ferme pour appuyer à nouveau sur le bouton
ne peux ton pas écrire Show.Close();?
Dernière modification par gdisque ; 16/03/2021 à 16h37.
Par défaut, MessageBox.show(string) affiche seulement un bouton OK, qui n'est pas le bouton Yes, donc ton test ne fonctionnera pas, il faut comparer r à DialogResult.OK.
MessageBox.show peut avoir 3 arguments comme dans mon code (string, string, buttons), mais il y a d'autres définitions avec 3 arguments => cf la doc
Sinon c'est peut-être le framework cible et sa version (.NET Core, .NET Framework, ....) (à voir dans les propriétés du projet)
MessageBox est une fenêtre bloquante. La suite du code ne peut-être exécuter que si on ferme cette fenêtre.
Bonsoir,
Tu ne tiens aucun compte des exemples de codes donnés.
D'où sort ta variable output, par exemple ?
Si l'ide te dit que tu ne passes pas assez d'argument, ajoute une MessageBoxIcon :
doc officielleCode:MessageBox.Show("Voulez-vous vraiment quitter l'application ?", "Fermeture", MessageBoxButton.YesNo, MessageBoxIcon.Warning);
Dernière modification par Ikhar84 ; 16/03/2021 à 19h54.
J'ai glissé Chef !
salut
j'ai mi le .net 3.5 compact framework,mais je c'est pas si le programme la prit en compte
pour la condition if,j'ai passé tout les paramètres pour "MessageBoxButton" OK Yes OKCancel rien ne passe
j'ai aussi essayé MessageBox.Show,le programme ne dois pas le reconnaitre
en fin de compte,j'ai viré MessageBox.Show pour TextBox.Text ça fait le job
la variable output est de type string est la pour affiché la variable envoyé par TCP/IP
merci de votre aide,je reviendrais demandé votre aide pour comprendre l’environnement de programmation winforms c#
Dernière modification par gdisque ; 18/03/2021 à 18h43.
le .NET compact c'est pour un développement sur pour des terminaux en windows CE ou windows mobile (https://fr.wikipedia.org/wiki/.NET_Compact_Framework). Est-ce que c'est la cible de ton programme ?
Si ton programme doit fonctionner sur un PC standard, utilise .NET 3.5 ou 4.5 (Framework ou Core)
Comme précisé , le .NET CF est prévue pour des OS très anciens (La dernière version de Widows Mobile, la 6.5, date de 2008 et CF ne ciblait pas WP) qui ne sont plus utilisés; pour quelle OS cible est ce programme ?
C'est vraiment n'importe quoi.....pour la condition if,j'ai passé tout les paramètres pour "MessageBoxButton" OK Yes OKCancel rien ne passe
j'ai aussi essayé MessageBox.Show,le programme ne dois pas le reconnaitre
en fin de compte,j'ai viré MessageBox.Show pour TextBox.Text ça fait le job
la variable output est de type string est la pour affiché la variable envoyé par TCP/IP
Le résultat d'un MessageBox.show dépend des boutons qui lui sont fournis, si on lui indique les boutons YesNo, le résultat va prendre Yes, No, ou Cancel (quand on ferme la fenêtre avec la croix si je ne dis pas de bêtises)