Passer paramètres de Form2 vers Form1 [Résolu]

Messages postés
61
Date d'inscription
mercredi 24 septembre 2008
Dernière intervention
16 juin 2012
- - Dernière réponse : Leucistic
Messages postés
61
Date d'inscription
mercredi 24 septembre 2008
Dernière intervention
16 juin 2012
- 11 août 2008 à 22:40
Bonjour,

Je suis débutant en C# (et langage objet), et après plusieurs recherches sur le site et ailleurs, je n'ai rien trouvé qui me convienne.
J'ai lu beaucoup de solutions avec des delegate, j'ai essayer de comprendre comment s'en servir (notamment via la MSDN), mais j'aimerais quelque chose de plus simple.
Le but : dans Form1, un menu File -> Settings ouvre une form2 avec 5 comboBox, un bouton "Connect", et un bouton "Cancel".
Je voudrais en cliquant sur "Connect" que les comboBox.SelectedItem soient envoyés dans des variables présentes dans ma Form1.

Suis-je vraiment obligé de passer par les delegate ?

Merci d'avance

L'ouverture de l'esprit n'est pas une fracture du crâne
Afficher la suite 

Votre réponse

9 réponses

Meilleure réponse
Messages postés
1025
Date d'inscription
mardi 4 février 2003
Dernière intervention
7 juin 2010
3
Merci
Oui, donc:

 - tu crées un constructeur de ta form2 qui prend en paramètre ta form1,
 - tu peux une méthode dans ta form1, qui met à jour les variables que tu veux, en fonction des paramètres de cette méthode.
 - Et enfin, à la fermeture de ton form2, tu appelles cette méthode pour faire la mise à jour.

Amicalement, SharpMao

"C'est pas parce qu'ils sont nombreux à avoir tort qu'ils ont raison!"
(Coluche / 1944-1986 / Pensées et anecdotes)

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 98 internautes ce mois-ci

Commenter la réponse de SharpMao
Messages postés
1025
Date d'inscription
mardi 4 février 2003
Dernière intervention
7 juin 2010
3
Merci
Form2 f2 = new Form2(this);

Amicalement, SharpMao

"C'est pas parce qu'ils sont nombreux à avoir tort qu'ils ont raison!"
(Coluche / 1944-1986 / Pensées et anecdotes)

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 98 internautes ce mois-ci

Commenter la réponse de SharpMao
Messages postés
1025
Date d'inscription
mardi 4 février 2003
Dernière intervention
7 juin 2010
0
Merci
Hello,

As-tu regardé cet exemple : http://www.csharpfr.com/codes/PASSAGE-PARAMETRES_26735.aspx

Il est excellent, et donne en fait deux exemples:
 - un par des event et delegate,
 - l'autre avec passage de paramètre dans le constructeur.

Don, non, tu n'es pas obliger de passer par des delegate, pour autant que ton form2 puisse modifier directement la valeur désirée dans le form1, ou que to form2 expose une propriété qui pourra être récupérée après sa fermeture par form1.

Amicalement, SharpMao

"C'est pas parce qu'ils sont nombreux à avoir tort qu'ils ont raison!"
(Coluche / 1944-1986 / Pensées et anecdotes)
Commenter la réponse de SharpMao
Messages postés
61
Date d'inscription
mercredi 24 septembre 2008
Dernière intervention
16 juin 2012
0
Merci
Merci. Je l'avais déjà vu. Mais à moins que j'ai mal compris, ceci ne résoud pas mon problème.

Ce que j'ai compris :
Le passage de paramètre est utilisé un surchargeant le constructeur de la Form2. C'est donc en créant la Form2 que l'on va pouvoir passer les parametres.
Ce que je voudrais :
Pouvoir passer les parametres de la Form2 vers la Form1 à la fermeture de Form2.

Ai-je mal compris ?
L'ouverture de l'esprit n'est pas une fracture du crâne
Commenter la réponse de Leucistic
Messages postés
61
Date d'inscription
mercredi 24 septembre 2008
Dernière intervention
16 juin 2012
0
Merci
Voici ce que j'ai rajouté dans ma Form2 :

private MainForm refToMainForm;
        
public Form2(MainForm reference):this()
{
    this.refToMainForm = reference;
}

Le problème est que dans MainForm.cs, je ne peux pas faire :
Form2 f2 = new Form2(MainForm);

Il me dit que MainForm est un type et qu'il est utilisé comme une variable.
Je comprends l'erreur, mais comment la résoudre ?

L'ouverture de l'esprit n'est pas une fracture du crâne
Commenter la réponse de Leucistic
Messages postés
61
Date d'inscription
mercredi 24 septembre 2008
Dernière intervention
16 juin 2012
0
Merci
Maintenant j'ai d'autres problèmes, mais celui là est résolu, j'arrive à récupérer des valeurs de Form2 vers MainForm.

Merci!
L'ouverture de l'esprit n'est pas une fracture du crâne
Commenter la réponse de Leucistic
Messages postés
5507
Date d'inscription
dimanche 4 août 2002
Dernière intervention
20 juin 2013
0
Merci
Sniff, ma source est autant incompréhensible que ça?

<hr />
-My Blog-
Commenter la réponse de cs_Bidou
Messages postés
1025
Date d'inscription
mardi 4 février 2003
Dernière intervention
7 juin 2010
0
Merci
Mais non Bidou,

Elle est géniale et complète ta source, mais les delegate et events, ça fait un peu peur aux débutants, je crois.

Amicalement, SharpMao

"C'est pas parce qu'ils sont nombreux à avoir tort qu'ils ont raison!"
(Coluche / 1944-1986 / Pensées et anecdotes)
Commenter la réponse de SharpMao
Messages postés
61
Date d'inscription
mercredi 24 septembre 2008
Dernière intervention
16 juin 2012
0
Merci
J'ai appris la POO seul, en peu de temps, alors ... il y a encore pas mal de choses qui sont floues ... un grand besoin de coder pour m'y faire.
Alors je vais deja apprendre à maitriser les exceptions, la creation d'objet, etc... après je comprendrais surement mieux les delegate mais pour l'instant je t'avoue que c'est trop trash pour moi.

L'ouverture de l'esprit n'est pas une fracture du crâne
Commenter la réponse de Leucistic

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.