10
votes

Comment passer la valeur de la chaîne d'un formulaire à l'événement de charge d'un autre formulaire en C #

J'ai besoin de passer une valeur de chaîne à partir de Form1 : xxx

dans le formulaire form2 charger Evénement . Par exemple: xxx


0 commentaires

5 Réponses :


31
votes

Il suffit de créer une propriété sur la classe Form2 et de la définir avant de montrer le formulaire2.

public void button1_Click(object sender, EventArgs e)
{
    string departmentName = "IT";
    Form2 frm2 = new Form2();
    frm2.MyProperty = departmentName;
    frm2.Show();
    this.Hide();
}


0 commentaires

5
votes

N'oubliez pas que les formulaires ne sont que des classes comme n'importe quel autre xxx

de formulaire 1 xxx


0 commentaires

1
votes

Vous ne le faites pas de cette façon. Au lieu de cela, vous pouvez transmettre votre valeur de chaîne sur le constructeur: xxx

Les autres intervenants vous ont également dit comment le faire avec une propriété publique.


0 commentaires

0
votes

PRO Tip

Dans le futur, réfléchissez-y de manière plus générique: une forme est juste une classe et l'événement de charge n'est qu'une méthode.

Si vous essayiez de passer une valeur comprise entre 2 objets qui n'étaient pas des formulaires, vous auriez une propriété publique dans une classe que d'autres objets pourraient accéder. Ceci est au cœur de la réponse rsbarro et ce que j'aime appeler "Les formulaires sont des cours aussi" :)


0 commentaires

1
votes

Il y a un moyen plus facile de passer la chaîne de form2 à former1 fort>. Créez une relation entre les formulaires et dans le formulaire, créez une variable de form1, appelez la variable en form1 et attribuez la valeur à celle-ci ....

public partial class Form_2 : Form
    {
        public readonly Form1 _form1;
        public Form_2(Form1 form1)
        {
            _form1 = form1;
            InitializeComponent();
        }         
        private void Form2(object sender, EventArgs e)
        {     
            _form1.Remark = txtbx_remark.Text;                  
        }// Remark is a string in Form1 .... 


0 commentaires