C# 在表单c之间共享数据#

C# 在表单c之间共享数据#,c#,C#,我是c#的新手,有一些问题。 这是我的代码: //Form1 public partial class Form1 : Form { public string name="Adam"; private void button1_Click(object sender, EventArgs e) { name="John"; Form2 f2=new Form2(); f2.Show(); } } /

我是c#的新手,有一些问题。 这是我的代码:

//Form1 

public partial class Form1 : Form
{
    public string name="Adam";

    private void button1_Click(object sender, EventArgs e)
    { 
         name="John";
         Form2 f2=new Form2();
         f2.Show();
    }
}

//Form 2

public partial class Form2 : Form
{
    private void Form2_Load(object sender, EventArgs e)
    {  
        Form1 f1=new Form1();
        textbox1.Text=f1.name;
    }
}

当我点击按钮时,文本框1(来自表单2)显示“亚当”,但我应该得到“约翰”

这永远不会发生

在Form2内部,您正在创建一个新的form1,其默认值为“Adam”。 如果希望它在Form1中显示值,可以选择让Form1将值传递给Form2

Name = "John";
Form2 f2 = new Form2();
f2.Name = Name;
f2.Show();

在form2中,添加“Name”属性,并使用它,而不是创建新的form1。

在您仍然使用第一个表单时传递它:

private void button1_Click(object sender, EventArgs e)
    { 
         name="John";
         Form2 f2=new Form2();
         f2.textBox1.Text = name; // textBox1 must not be private.
         f2.Show();
    }

你必须把信息传递给办公室我不认为公开控制权是个好主意。最好为Form2的构造函数创建重载或创建公共方法。