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

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

Votre réponse

6 réponses

Meilleure réponse
Messages postés
94
Date d'inscription
dimanche 16 avril 2006
Dernière intervention
17 avril 2008
- 13 mars 2008 à 01:22
3
Merci
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.

Merci taupe4 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 86 internautes ce mois-ci

Commenter la réponse de taupe4
Messages postés
94
Date d'inscription
dimanche 16 avril 2006
Dernière intervention
17 avril 2008
- 12 mars 2008 à 12:29
0
Merci
Commenter la réponse de taupe4
Messages postés
191
Date d'inscription
mercredi 11 juillet 2007
Dernière intervention
30 juin 2011
- 12 mars 2008 à 14:16
0
Merci
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
Messages postés
191
Date d'inscription
mercredi 11 juillet 2007
Dernière intervention
30 juin 2011
- 13 mars 2008 à 19:18
0
Merci
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
Messages postés
191
Date d'inscription
mercredi 11 juillet 2007
Dernière intervention
30 juin 2011
- 13 mars 2008 à 19:25
0
Merci
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
Messages postés
1
Date d'inscription
samedi 12 janvier 2008
Dernière intervention
6 août 2008
- 6 août 2008 à 14:55
0
Merci
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.