Envoyer une variable d'une Form à l'autre :s

Résolu
cs_ansizak Messages postés 191 Date d'inscription mercredi 11 juillet 2007 Statut Membre Dernière intervention 30 juin 2011 - 12 mars 2008 à 10:44
sahbi1css Messages postés 1 Date d'inscription samedi 12 janvier 2008 Statut Membre Dernière intervention 6 août 2008 - 6 août 2008 à 14:55
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.

6 réponses

taupe4 Messages postés 91 Date d'inscription dimanche 16 avril 2006 Statut Membre Dernière intervention 17 avril 2008 1
13 mars 2008 à 01:22
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.
3
taupe4 Messages postés 91 Date d'inscription dimanche 16 avril 2006 Statut Membre Dernière intervention 17 avril 2008 1
12 mars 2008 à 12:29
0
cs_ansizak Messages postés 191 Date d'inscription mercredi 11 juillet 2007 Statut Membre Dernière intervention 30 juin 2011
12 mars 2008 à 14:16
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.
0
cs_ansizak Messages postés 191 Date d'inscription mercredi 11 juillet 2007 Statut Membre Dernière intervention 30 juin 2011
13 mars 2008 à 19:18
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.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_ansizak Messages postés 191 Date d'inscription mercredi 11 juillet 2007 Statut Membre Dernière intervention 30 juin 2011
13 mars 2008 à 19:25
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.
0
sahbi1css Messages postés 1 Date d'inscription samedi 12 janvier 2008 Statut Membre Dernière intervention 6 août 2008
6 août 2008 à 14:55
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
0