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 13
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 13
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
Rejoignez-nous