将字符串发送到现有表单

本文关键字:表单 字符串 | 更新日期: 2023-09-27 17:49:18

我知道这个线程可以将字符串从一种形式发送到另一种形式。但如果你看一下这个方法,它必须创建一个新的表单,然后在那里检索字符串。是否有一种方法来传递字符串到现有的形式?

例如:

public class Form2
{
   ...
   public string MyProperty { get; set; }
   private void Form2_Load(object sender, EventArgs e)
   {
       MessageBox.Show(this.MyProperty);
   }
}
从Form1:

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

当我单击button1时,将打开发送字符串的新表单。如果frm2已经打开了,我想把字符串传递给那个表单,而不是一个新的表单,该怎么办?

将字符串发送到现有表单

要做你想做的,你必须保存一个引用到你的表单,然后简单地检查它是否已经存在:

private Form2 myForm;
// Then, in your button code:
if (myForm == null)
    myForm = new Form2();
myForm.MyProperty = departmentName;
myForm.Show();

您可以在Form1类上创建一个属性,并将其用作Form2的引用:

public class Form1 : Form
{
    private Form2 mForm2 { get; set; }
    public void button1_Click(object sender, EventArgs e)
    {
        string departmentName = "IT";
        if (mForm2 == null)
            mForm2 = new Form2();
        mForm2.MyProperty = departmentName;
        frm2.Show();
        this.Hide();
    }
}