窗体之间传值可以使用观察者模式,但是如果设置一个static(静态)变量,好像更简单。对于小型程序感觉是可用的:
在前一个窗体上:

public static string x;

//试验窗体切换的代码
private void button2_Click(object sender, EventArgs e)
{
try
{
this.Hide(); //这句如果放到“f2.ShowDialog();”之后好像无法关闭当前窗体
t = "传值";
Form2 f2 = new Form2();
t = "shthrshttryhstrys";
f2.ShowDialog(); //如果这里使用的是f2.show()语句也不行,form2无法弹出
this.Close();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}

    }

x=“及维护的覅玩去了发”;

然后在其后运行的所有程序都可以读到x的值了。不过对于变量t的赋值需要在“ f2.ShowDialog();”之前

不过这个方法好像为专业程序员所不耻。