Load change de feuille recall load Clair précis

Résolu
iian2
Messages postés
103
Date d'inscription
jeudi 10 novembre 2005
Statut
Membre
Dernière intervention
21 septembre 2007
- 19 juil. 2007 à 14:06
iian2
Messages postés
103
Date d'inscription
jeudi 10 novembre 2005
Statut
Membre
Dernière intervention
21 septembre 2007
- 19 juil. 2007 à 14:45
Allo,

Je vais etre asser direct et simple

Form1_Load(...)
{
  config.OpenLoadMaConfig();   //Va chercher des lignes d'un file xml puis les mets dans un listbox
}

Metons que je vais dans un aute feuille(Form2) pis que ma config change et une fois la nouvelle config fais je retourne a ma Form1

Comment je fais pour recall ma fonction config.OpenLoadMaConfig();

J'ai essayer mais si je la Call dans mon Form2 il reconnait pas mes objets.

Une idée ?

Merci beaucoup d'avance.

4 réponses

Nikoui
Messages postés
794
Date d'inscription
vendredi 24 septembre 2004
Statut
Membre
Dernière intervention
19 août 2008
10
19 juil. 2007 à 14:13
Si tu veux que ce soit fait "automatiquement" (c'est a dire sans demander a l'utilisateur de cliquer sur un bouton "refresh"), il faut que tu mette une fonction publique dans Form1 qui fera l'appel à config.OpenLoadMaConfig(). Ensuite il faut que tu donne a Form2 une référence vers Form1, de sorte que tu puisse faire : myForm1.MyPublicMethod();

<hr size="2" width="100%" />Working as designed
3
Nikoui
Messages postés
794
Date d'inscription
vendredi 24 septembre 2004
Statut
Membre
Dernière intervention
19 août 2008
10
19 juil. 2007 à 14:37
La méthode que tu vas executer se trouve dans ta form1, donc il faut que form2 est une référence (un lien) vers form1 (attention, form1 c'est "l'instance" qui est executée, ce n'est pas la classe Form1).

Pour cela, tout dépend de la facon dont tu gère tes forms :
Si ta form1 est la form principale, et que form2 est créée par form1, alors tu peux faire comme cela :
- Dans la classe Form2, rajoute un constructeur qui prend en paramètre une Form et stock ce paramètre pour pouvoir le réutiliser:

// Dans Form2

private Form form1;

public Form2(Form form)
{
    // On sauvegarde le lien vers form1
    this.form1 = form;
}

Ensuite dans Form1, au moment où tu crée Form2, remplace l'ancien constructeur par celui que tu viens de rajouter :

// Creation de Form2
Form2 form2 = new Form2(this); // On créé form2 et on lui donne une référence vers Form1 (=this)

Une fois que tu as fait ca, dans form2 tu peux faire a tout moment :

// Dans Form2 :
form1.MaMethodePublique();

<hr size="2" width="100%" />Working as designed
3
iian2
Messages postés
103
Date d'inscription
jeudi 10 novembre 2005
Statut
Membre
Dernière intervention
21 septembre 2007

19 juil. 2007 à 14:27
Allo,


cool merci beaucoup. Comment je fais me reference ?

// // il faut que tu donne a Form2 une référence vers Form1
Genre ?

Form1 myForm1 = new Form1();

????

myForm1.MyPublicMethod();

C'est ca ?

Merci

Ian
0
iian2
Messages postés
103
Date d'inscription
jeudi 10 novembre 2005
Statut
Membre
Dernière intervention
21 septembre 2007

19 juil. 2007 à 14:45
Un gros merci

je vais tester ca

Ian
0