将对象传递给不同的窗体
我想在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来传递实例。