将对象传递给不同的窗体

我想在win表单之间传递一个C#对象。 目前,我已经设置了一个基本项目来学习如何执行此操作,该项目由两个表单组成 – form1和form2以及一个名为class1.cs的类,其中包含get和set方法,用于在form1中输入的值设置字符串变量。 (表单2应该获取存储在class1对象中的值)

如何从form1中设置的对象获取字符串值? 我是否需要将其作为参数传递给form2?

任何评论/帮助将被指定!

谢谢,

编辑:这是我目前的代码:(form1.cs)

private void button1_Click(object sender, EventArgs e) { this.Hide(); Form2 form2 = new Form2(); form2.Show(); } private void button2_Click(object sender, EventArgs e) { if (textBox1.Text != "") { Class1 class1 = new Class1(); class1.setStringValue(textBox1.Text); } } } 

}

有几种不同的方法可以使用静态类对象,上面的示例对于此活动是理想的。

 public static class MyStaticClass { public static string MyStringMessage {get;set;} } 

您不需要实例化该类,只需调用它即可

 MyStaticClass.MyStringMessage = "Hello World"; Console.WriteLine (MyStaticClass.MyStringMessage); 

如果需要对象的实例,可以使用以下内容将Form1上创建的类对象传递给Form2。

 private void button1_Click(object sender, EventArgs e) { this.Hide(); Form2 form2 = new Form2(); form2.MyClass = class1; form2.Show(); } 

然后在Form2上创建一个属性来接受类对象。

 public Class1 MyClass {get;set;} 

记得将Class1对象设为全局变量,而不是在按钮2本身内创建它。

是的,在Form1中,您声明了Class1的实例,然后根据需要设置参数,然后将其传递给Form2。 例如,你可以在Form2中有一个构造函数,并在其中有一个Class1参数。 假设Form1创建了Form2,否则你必须有一些方法让Form1找到Form2来传递实例。