Récupérer des variables d'une Form1 à une Form2

Signaler
Messages postés
11
Date d'inscription
mercredi 2 avril 2008
Statut
Membre
Dernière intervention
4 mai 2008
-
Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
-
Bonjours à tous,

voilà j'ai un petit problème qui est le suivant :

j'ai une première fenêtre Form1 qui affiche 3 boutons si je clique sur un bouton une variable map change de valeur.
Puis une fois le bouton cliqué cette fenêtre ce ferme pour m'en afficher une autre Form2.

Seulement la deuxième fenêtre Form2 doit pouvoir récupérer la variable map mais je n'y arrive pas.

Voici le code de Form1 :

using

System;
using

System.Collections.Generic;
using

System.ComponentModel;
using

System.Data;
using

System.Drawing;
using

System.Text;
using

System.Windows.Forms;
namespace

HeroicStrat{

public
partial
class
Form1 :
Form{

public Form1(){

InitializeComponent();

}

public
string map;

public
void button1_Click(
object sender,
EventArgs e){

map =

"./Map/map3.xml";Close();

}

public
void button2_Click(
object sender,
EventArgs e){

map =

"./Map/map4.xml";Close();

}

public
void button3_Click(
object sender,
EventArgs e){

map =

"./Map/map5.xml";Close();

}

public
string get_map(){

return map;}

}

}

Puis avec Form2 j'instancie :

public
Form1 menu = new Form1();

et je veux utilisé ma variable comme ceci :

docNav =

new
XPathDocument(menu.get_map());

seulement le compilateur me dis que menu.get_map est null.

Voilà j'espère avoir été claire et merci pour vos réponse.

3 réponses

Messages postés
339
Date d'inscription
dimanche 26 janvier 2003
Statut
Membre
Dernière intervention
25 mars 2009
4
Cette question ne revient jamais que 10 fois par semaine hein.
Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
86
Salut,

De ce que je vois le champ map (pourquoi est il avec une accessibilité public ?) n'est initialisé que lors du clic sur un des boutons, donc si ce n'est pas le cas, la méthode get_map retourne effectivement une référence nulle.

/*
coq
MVP Visual C#
CoqBlog
*/
Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
86
Ha oui, je n'avais pas fait attention au coup du cross form...
Appeler une méthode sur une instance de formulaire dont la méthode Close a été appelée est voué à l'échec.
Enfin, comme le dit bubbathemaster, il y a pas mal de posts existants sur ce sujet...

/*
coq
MVP Visual C#
CoqBlog
*/