Récupérer les paramètres d'un form existant...? [Résolu]

andy2501 14 Messages postés mercredi 7 avril 2010Date d'inscription 12 avril 2010 Dernière intervention - 9 avril 2010 à 09:44 - Dernière réponse : andy2501 14 Messages postés mercredi 7 avril 2010Date d'inscription 12 avril 2010 Dernière intervention
- 9 avril 2010 à 15:08
Bonjour à tous, petite question...

Comment puis-je faire pour récupérer les paramètres d'un form existant et non d'un nouveau form..? Car quand j'ouvre mon Form1, et que je veux appeler un paramètre de celui-ci depuis mon fichier de code, il me transfert les paramètres d'un nouveau Form1, dans lequel biensure les paramètres sont encore vide...
Je sais pourquoi, car j'utilise dans mon fichier de code;

Form1 form1 = new Form1();

mais je ne vois pas quel code utiliser pour récupérer les paramètres du Form1 déja ouvert

en espèrant que quelqu'un comprenne se que je veux dire...
Afficher la suite 

Votre réponse

4 réponses

Meilleure réponse
cs_vpoyo 363 Messages postés vendredi 14 février 2003Date d'inscription 20 avril 2010 Dernière intervention - 9 avril 2010 à 10:42
3
Merci
Dans ce cas tu as plusieurs méthodes :
1/Si Form1 est une Form unique, c'est à dire que l'application ne peut avoir qu'une seule Form1 affichée à un moment donné, tu peux utiliser le pattern Singleton.

2/ Form 2 à la même propriétée que Form 1 et lecture (get) / écriture (set). Dans ce cas, quand tu crées ton Form 2 tu fais :
private void button1_Click(object sender, EventArgs e) 
{ 
Form2 form2 = new Form2(); 
Form2.propriete1 = this.propriete1;
Form2.propriete2 = this.propriete2;
form2.Show(); 
}


3/ tu passes Form1 en référence à Form2
Form2 form2 = new Form2(this);
et donc dans Form2 tu as un constructeur
public Form2(Form1 form1)
{
...
_form1 = form1;
}

si tu veux passer les paramètres de Form1 à Form2 ce n'est pas la peine de passer par ton Program.EnvoieParametre().

bref y a plein de moyen d'y arriver :)

Vincent.

Merci cs_vpoyo 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 101 internautes ce mois-ci

Commenter la réponse de cs_vpoyo
cs_vpoyo 363 Messages postés vendredi 14 février 2003Date d'inscription 20 avril 2010 Dernière intervention - 9 avril 2010 à 09:54
0
Merci
Bonjour,

Je suppose que dans ton fichier de code, tu fais appel à une fonction.

actuellement un truc du style

public void ma_fonction()
{
...
Form1 form1 = new Form1();
...
}

tu dois passer la form déjà ouverte en paramètre de cette méthode

public void ma_fonction(Form1 form1)
{
...
string s = form1.MaPropriete;
...
}

Cordialement,
Vincent
Commenter la réponse de cs_vpoyo
andy2501 14 Messages postés mercredi 7 avril 2010Date d'inscription 12 avril 2010 Dernière intervention - 9 avril 2010 à 10:18
0
Merci
Oui ca je connais ca fonctionne bien, le problème, c'est que dans mon Form1, j'appel mon Form2 à l'aide du boutton1;

private void button1_Click(object sender, EventArgs e)
{
Form2 form2 = new Form2();
form2.Show();
}

puis dans mon form2 je veux qu'il prenne les même paramètres que le Form1;

private void Form2_Load(object sender, EventArgs e)
{
Program.EnvoieParam(this);
}

mais dans mon fichier de code(Program), je voudrais pouvoir transferer les paramètres du Form1 au Form2. Pour l'instant j'ai mis ceci mais comme je disais, il prend les valeurs d'un nouveau Form1 et pas l'existant, je sais qu'il est possible de passé directement du Form1 au Form2 sans utiliser le code source, mais dans mon cas, je voudrais que le transfert se face dans le fichier de code, si cela est possible?

public static void EnvoieParam(Form2 form2)
{
Form1 form1 = new Form1();
form2.axRPBX1.UserName = form1.axLiveX1.UserName;
form2.axRPBX1.IpAddress = form1.axLiveX1.IpAddress;
form2.axRPBX1.Password = form1.axLiveX1.Password;
}
Commenter la réponse de andy2501
andy2501 14 Messages postés mercredi 7 avril 2010Date d'inscription 12 avril 2010 Dernière intervention - 9 avril 2010 à 15:08
0
Merci
ha voila j'ai pigé maintenant..., la méthode deux convient très bien, grand merci a toi viencent.
Commenter la réponse de andy2501

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.