Passer paramètres de Form2 vers Form1

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

9 réponses

SharpMao Messages postés 1024 Date d'inscription mardi 4 février 2003 Statut Membre Dernière intervention 7 juin 2010 69
11 août 2008 à 11:51
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)
3
SharpMao Messages postés 1024 Date d'inscription mardi 4 février 2003 Statut Membre Dernière intervention 7 juin 2010 69
11 août 2008 à 13:32
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)
3
SharpMao Messages postés 1024 Date d'inscription mardi 4 février 2003 Statut Membre Dernière intervention 7 juin 2010 69
11 août 2008 à 11:31
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)
0
Leucistic Messages postés 61 Date d'inscription mercredi 24 septembre 2008 Statut Membre Dernière intervention 16 juin 2012 1
11 août 2008 à 11:39
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Leucistic Messages postés 61 Date d'inscription mercredi 24 septembre 2008 Statut Membre Dernière intervention 16 juin 2012 1
11 août 2008 à 13:16
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
0
Leucistic Messages postés 61 Date d'inscription mercredi 24 septembre 2008 Statut Membre Dernière intervention 16 juin 2012 1
11 août 2008 à 14:56
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
0
cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 61
11 août 2008 à 18:16
Sniff, ma source est autant incompréhensible que ça?

<hr />
-My Blog-
0
SharpMao Messages postés 1024 Date d'inscription mardi 4 février 2003 Statut Membre Dernière intervention 7 juin 2010 69
11 août 2008 à 21:08
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)
0
Leucistic Messages postés 61 Date d'inscription mercredi 24 septembre 2008 Statut Membre Dernière intervention 16 juin 2012 1
11 août 2008 à 22:40
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
0
Rejoignez-nous