在C#visual Studio中将字符串从一种形式传递到另一种形式

在C#visual Studio中将字符串从一种形式传递到另一种形式,c#,winforms,C#,Winforms,之前也有人问过类似的问题,但我的问题有点不同 在这种情况下,在我的中一课程中,我有以下代码: public partial class Form1 : Form { String hello; Form2 frm2 = new Form2(); public Form1() { InitializeComponent(); } private void btnFindMe_Click(object sender, EventA

之前也有人问过类似的问题,但我的问题有点不同

在这种情况下,在我的中一课程中,我有以下代码:

public partial class Form1 : Form
{
    String hello;
    Form2 frm2 = new Form2();

    public Form1()
    {
        InitializeComponent();

    }

    private void btnFindMe_Click(object sender, EventArgs e)
    {
        hello = "hi";


        frm2.myProperty = hello;
        frm2.Show();

    }
}

现在,在我的Form2课程中,我有:

public String myProperty { get; set; }
private void btnOK_Click(object sender, EventArgs e)
    {

        MessageBox.Show(myProperty);

    }
所以基本上,myProperty返回null。但是如果我写过 字符串hello=“hi”; 在Form1类中,它将返回为“hi”


如何解决此问题?

传入Form2构造函数问题是messagebox弹出为空白。我假设这是因为所传递的只是“String myProperty”;根据您发布的代码,它应该可以正常工作-因此,其他方法是在
Form1
中将
hello
设置为null,或者在
Form2
中将
myProperty
设置为null。我会在调试器中运行它,观察这些变量并查看它们何时更改。请重新生成解决方案并重试。传入Form2构造函数。问题是messagebox弹出为空白。我假设这是因为所传递的只是“String myProperty”;根据您发布的代码,它应该可以正常工作-因此,其他方法是在
Form1
中将
hello
设置为null,或者在
Form2
中将
myProperty
设置为null。我会在调试器中运行它,观察这些变量并查看它们何时更改。请重新生成解决方案,然后重试。