将对象传递给不同的窗体

The*_*max 6 c# winforms

我想在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);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

}

Pau*_*bot 10

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

public static class MyStaticClass
{
  public static string MyStringMessage {get;set;}
}
Run Code Online (Sandbox Code Playgroud)

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

MyStaticClass.MyStringMessage = "Hello World";
Console.WriteLine (MyStaticClass.MyStringMessage);
Run Code Online (Sandbox Code Playgroud)

如果需要对象的实例,可以使用以下方法将在Form1上创建的类对象传递给Form2.

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

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

public Class1 MyClass {get;set;}
Run Code Online (Sandbox Code Playgroud)

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