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

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

6 réponses

Répondre au sujet
taupe4 94 Messages postés dimanche 16 avril 2006Date d'inscription 17 avril 2008 Dernière intervention - 13 mars 2008 à 01:22
+3
Utile
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.
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de taupe4
taupe4 94 Messages postés dimanche 16 avril 2006Date d'inscription 17 avril 2008 Dernière intervention - 12 mars 2008 à 12:29
0
Utile
Ceci devrait faire ton bonheur: http://www.csharpfr.com/codes/PASSAGE-PARAMETRES_26735.aspx
Commenter la réponse de taupe4
cs_ansizak 191 Messages postés mercredi 11 juillet 2007Date d'inscription 30 juin 2011 Dernière intervention - 12 mars 2008 à 14:16
0
Utile
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.
Commenter la réponse de cs_ansizak
cs_ansizak 191 Messages postés mercredi 11 juillet 2007Date d'inscription 30 juin 2011 Dernière intervention - 13 mars 2008 à 19:18
0
Utile
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.
Commenter la réponse de cs_ansizak
cs_ansizak 191 Messages postés mercredi 11 juillet 2007Date d'inscription 30 juin 2011 Dernière intervention - 13 mars 2008 à 19:25
0
Utile
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.
Commenter la réponse de cs_ansizak
sahbi1css 1 Messages postés samedi 12 janvier 2008Date d'inscription 6 août 2008 Dernière intervention - 6 août 2008 à 14:55
0
Utile
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
Commenter la réponse de sahbi1css

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.