Afficher valeur de form1 à form2

Signaler
Messages postés
1
Date d'inscription
mercredi 3 novembre 2010
Statut
Membre
Dernière intervention
29 janvier 2011
-
Messages postés
24
Date d'inscription
mercredi 4 juin 2008
Statut
Membre
Dernière intervention
19 avril 2011
-
bonjour,

Est ce que quelqu'un connait une technique pour prendre la valeur d'une variable d'un formulaire pour la reprendre ensuite dans un autre formulaire du projet dans le but de l'afficher dans un label.

3 réponses

Messages postés
834
Date d'inscription
samedi 15 novembre 2008
Statut
Membre
Dernière intervention
14 janvier 2017
32
Bonjour

en fait il existe plein de technique
en voici une, pas tres 'propr' mais fonctionnelle.

Dans Form1
    public partial class Form1 : Form
    {
        public static string Form1VariableText = "coucou de form1";
        ...

Dans Form2
    public partial class Form2 : Form
    {
        public Form2()
        {
            InitializeComponent();

            label1.Text = Form1.Form1VariableText;
         ...


Bob.
C# is amazing, enjoy it!
Messages postés
45
Date d'inscription
dimanche 29 mai 2005
Statut
Membre
Dernière intervention
14 avril 2011

Effectivement, c'est pas super propre :D

Il vaut mieux faire un

public partial class Form1 : Form
{
    private string _data = "Hello Form1"; // ou autre
    public string Data
    {
        get { return _data; }
        set { _data = value; }
    }

    // ...
}

public partial class Form2 : Form
{
    public Form2()
    {
        InitializeComponent();

        // ici il faut que tu récupère ton Form1 (le Parent, ou le MdiParent de Form2 par exemple)
        Form1 frm = (Form1)this.Parent;

        MessageBox.Show(frm.Data);
    }
}


Comme ça si tu ne veux pas que Form2 puisse définir la donnée de _data (ou de la valeur objet si c'est un objet qui est concerné), tu peux faire

public partial class Form1 : Form
{
    private string _data = "Hello Form1"; // ou autre
    public string Data
    {
        get { return _data; }
        private set { _data = value; }
    }

    // ...
}


et ta variable passe en lecture seule pour les objets externes à Form1
Messages postés
24
Date d'inscription
mercredi 4 juin 2008
Statut
Membre
Dernière intervention
19 avril 2011

Salut,

tu peux aussi passer tra variable en paramètre du constucteur de ta Form2

ex:

code Form1 :
//...
  Form2 maform = new Form2("toto");
//...


code Form2 :

public partial class Form2 : Form
{
    public Form2(string mavar1 )//Valeur Passée en paramètre
    {
        InitializeComponent();
        monLabel.Text = mavar1;   
    }
}