Envoyer une variable d'une Form à l'autre :s [Résolu]

Signaler
Messages postés
191
Date d'inscription
mercredi 11 juillet 2007
Statut
Membre
Dernière intervention
30 juin 2011
-
Messages postés
1
Date d'inscription
samedi 12 janvier 2008
Statut
Membre
Dernière intervention
6 août 2008
-
Bonjour, je travaille sur un programme dans lequel je charge un fichier xml dans un datatgrid en vue de modification.

Ensuite lorsque l'utilisateur clique sur un bouton, un formulaire contenant un webbrowser doit charger le fichier xml à partir du path contenu dans la form1.

J'ai essayé ceci:

public partial class Form1 : Form
{
        public string xmlpath;
      
        public Form1()
        {          
            InitializeComponent();
            dataGridshow.AutoGenerateColumns = true;
        }

private void buttonshowxml_Click(object sender, EventArgs e)
        {
             Form2 web = new Form2();
             Form2.ShowDialog();
        }
}

public partial class Form2 : Form
    {
        public Form2()
        {
            Form1 main = new Form1;
            Webbrowser1.Navigate(main.xmlpath)
            InitializeComponent();

         }

Au final la valeur de xmlpath est nulle.... Pouvez-vous m'éclairer ?

Cordialement,

Anz.
A voir également:

6 réponses

Messages postés
91
Date d'inscription
dimanche 16 avril 2006
Statut
Membre
Dernière intervention
17 avril 2008
1
Il faut que, dans le constructeur de Form2, tu mettes un paramètre de type form1, comme ceci:
public Form2(Form1 main)
{
}

. Une fois cela fait, quand tu viens pour créer ta Form2 dans Form1, tu fais new Form1(this). Et cela dit "envoie lui mon emplacement pour qu'il puisse accéder à mes propriétés publiques et internes.
Messages postés
91
Date d'inscription
dimanche 16 avril 2006
Statut
Membre
Dernière intervention
17 avril 2008
1
Messages postés
191
Date d'inscription
mercredi 11 juillet 2007
Statut
Membre
Dernière intervention
30 juin 2011

J'avoue ne pas tout saisir, en effet dans le cas présenté on fait passer une variable de la form client vers la main:
ainsi les paramètres sont entrés dans la form client après son initialisation, la récupération des paramètres depuis la form client vers le main est donc évidente.

Dans mon cas je dois faire passer un paramètre de la form main vers une form client, sachant que le paramètre est une public string qui n'est pas défini lors de l'évenement qui charge la form client, mais dans un autre évènement bien distinct.
C'est pourquoi lorsque je charge la form main de puis la form client: Form1 main = new Form1(); je pense que tous les paramètres sont réinitialisés.

Je n'ai peut-être pas tout saisi, si c'est le cas pourrais-tu m'éclairer d'avantage, j'ai assez de mal à comprendre le principe de cette source.

Cordialement,

Anz.
Messages postés
191
Date d'inscription
mercredi 11 juillet 2007
Statut
Membre
Dernière intervention
30 juin 2011

Au niveau de la syntaxe, impossible de coder new Form1(this)...

tu veux dire :

dans la form1 je dois faire:
Form2 user = new Form1(this);
?
ça n'a pas l'air de passer peux tu m'ne dire plus ?

merci à toi,
Anz.
Messages postés
191
Date d'inscription
mercredi 11 juillet 2007
Statut
Membre
Dernière intervention
30 juin 2011

STOP, je retire ce que j'ai dit, ça marche nickell, j'avais fait n'importe quoi... ^^

Encore merci à toi, c'est parfait :)

Cordialement,
Anz.
Messages postés
1
Date d'inscription
samedi 12 janvier 2008
Statut
Membre
Dernière intervention
6 août 2008

Bonjour, est tu peux me montrer qu'est ce que t'as fait pour que ca marcher ... pour moi le syntaxe new Form1(this) n'est pas correct