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

Leucistic 61 Messages postés mercredi 24 septembre 2008Date d'inscription 16 juin 2012 Dernière intervention - 11 août 2008 à 10:30 - Dernière réponse : Leucistic 61 Messages postés mercredi 24 septembre 2008Date d'inscription 16 juin 2012 Dernière intervention
- 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

SharpMao 1025 Messages postés mardi 4 février 2003Date d'inscription 7 juin 2010 Dernière intervention - 11 août 2008 à 11:51
+3
Utile
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)
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de SharpMao
SharpMao 1025 Messages postés mardi 4 février 2003Date d'inscription 7 juin 2010 Dernière intervention - 11 août 2008 à 13:32
+3
Utile
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)
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de SharpMao
SharpMao 1025 Messages postés mardi 4 février 2003Date d'inscription 7 juin 2010 Dernière intervention - 11 août 2008 à 11:31
0
Utile
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
Leucistic 61 Messages postés mercredi 24 septembre 2008Date d'inscription 16 juin 2012 Dernière intervention - 11 août 2008 à 11:39
0
Utile
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
Leucistic 61 Messages postés mercredi 24 septembre 2008Date d'inscription 16 juin 2012 Dernière intervention - 11 août 2008 à 13:16
0
Utile
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
Leucistic 61 Messages postés mercredi 24 septembre 2008Date d'inscription 16 juin 2012 Dernière intervention - 11 août 2008 à 14:56
0
Utile
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
cs_Bidou 5507 Messages postés dimanche 4 août 2002Date d'inscription 20 juin 2013 Dernière intervention - 11 août 2008 à 18:16
0
Utile
Sniff, ma source est autant incompréhensible que ça?

<hr />
-My Blog-
Commenter la réponse de cs_Bidou
SharpMao 1025 Messages postés mardi 4 février 2003Date d'inscription 7 juin 2010 Dernière intervention - 11 août 2008 à 21:08
0
Utile
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
Leucistic 61 Messages postés mercredi 24 septembre 2008Date d'inscription 16 juin 2012 Dernière intervention - 11 août 2008 à 22:40
0
Utile
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.