Salut,
J'aimerais juste renvoyer une valeur de retour ( de type booleenne ) à la fermeture d'une fenetre.
Merci
Salut,
J'aimerais juste renvoyer une valeur de retour ( de type booleenne ) à la fermeture d'une fenetre.
Merci
Euh, changer la valeur d'un booleen quand la fenêtre se ferme ou tester que la fermeture s'est bien passée ?
Dans le premier cas, événement FormClosing (ou FormClosed)
et le deuxième cas, un try - catch semble plus adapté.
C'est la première option.
En tout cas je teste.
merci
J'ai un souci.
L'evenement FormClosing se passe dans sa propre fenetre...
en fait je voudrais faire un truc du style :
Ya t il des tutos assez simple et complet sur le C# que vous me conseilleriez
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 bool result = new fIdentification(); if (result){ .... } else { ... }
merci
Euh, si je suis votre raisonnement, quand la fenêtre se ferme vous souhaitez executer des actions. Dans ce cas, executez votre code directement dans l'événement FormClosed (il ferme la fenêtre et ensuite execute le code.)
Le code présent dans le else est executé tant que la fenêtre est ouverte, dans ce cas, je le mettrai dans l'evenement Form_Load ou...
Sinon je ne vois pas trop ce que vous souhaitez ?
Pour les cours, il y en a ici : http://dotnet.developpez.com/cours/
ainsi que la faq très pratique : http://dotnet.developpez.com/faq/
Non
En fait, j'ouvre une fenetre à partir d'une autre classe qui attend la fermeture de cette dernière.
APRES la fermeture de la fenetre, des actions doivent se dérouler.
Dans mon exemple, c'est une fenetre d'identification.
En fait je souhaite que ça fasse comme :
mais à ma sauce
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 DialogResult result = MessageBox.Show(_message, _caption, MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1); if(result == DialogResult.Yes){ ... } else if(result == DialogResult.Cancel) { ... } else { ... }
Et pourquoi justement ne pas faire pareil ?
Dans l'événement FormClosing ou FormClosed de ton formulaire appelé tu affectes à sa propriété DialogResult la valeur appropriée, et le formulaire appelant disposera ainsi de l'info nécessaire.
Certes ce n'est pas un booléen, mais la conversion n'est pas très compliquée.![]()
ok, c'est ce que je vais faire.
Mais il y a pas d'autres moyens ? par exemple si besoin de renvoyer un objet ou autres ?
Pour un objet (type référence), tu as l'option d'un passage de paramètre au constructeur du formulaire appelé.
Pour un type valeur comme un booléen, ça risque d'être plus compliqué sans boxing...
okay merci![]()
Je vais regarder sur les tutos pou les "dialogues" entre fenêtre
Je fais remonter ce topic un peu ancien, mais j'ai à peu près le même problème décrit dans l'avant dernière réponse.
Depuis un formulaire, j'ouvre un nouveau formulaire en lui donnant des paramètres et je souhaiterais récupérer ces paramètres modifiés à la fermeture de ce 2° formulaire.
Pour le moment je fais
avec le constructeur du 2° form :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Form fNouveauMembre = new fGroupeMembre(cpGroupeCourant); fNouveauMembre.Show();
Ensuite je fais mes modifs sur ce cGpeCourant. Et je souhaite à la fermeture du fGroupeMembre récupérer dans le premier formulaire, le clGroupe modifié.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 public partial class fGroupeMembre : Form { clGroupe cGpeCourant; public fGroupeMembre(clGroupe cGpe) { InitializeComponent(); cGpeCourant = cGpe; } }
Merci pour votre aide à tous.
Salut,
c'est simple tu as déjà tout compris vu ton code (ou alors tu l'as leecher quelque part sans le comprendre) car tout est fait dedans il te reste plus qu'a recupere la valeur de "cGpeCourant" de ton 2° formulaire, comme ceci :
mais pour ceci il faut que ton attribut dans ton 2eme form soit public.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Form fNouveauMembre = new fGroupeMembre(cpGroupeCourant); fNouveauMembre.Show(); clGroupe monNouveauGpeCourant = fNouveauMembre.cGpeCourant;
dans ce cas fait toi un accesseur si tu veut eviter que l'on puisse modifier le groupe a travers une autre classe.
Merci, effectivement cela était tout simple, je ne pensais qu'il pouvait accéder aux valeurs de cete manière.
Un petit getter et c'est tout bon.
Lorsque tu parles d'ascenceur, tu peux developper un petit peu. (je ne pense pas en avoir besoin dans l'immédiat, mais pour info)
Pour le code c'est bien moi qui le fait
Merci
je n'ai pas parler d'ascenseur mais d'accesseur.
En gros c'est ce que tu nomme : "getter" qui permet d'acceder a la valeur d'une variable private telle une fonction.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 private int _maVar; public int maVar {get {return _maVar;} }
oups erreur de lecture, désolé.
Merci
Partager