C# 如何从form1到form2再返回值?

C# 如何从form1到form2再返回值?,c#,forms,reference,parent,C#,Forms,Reference,Parent,好的,情况如下: 我想将form1中字符串的值保存到form2中的文本框中,编辑它并将其发送回,然后再次将其保存为form1中的字符串。这很容易,但我太笨了,不会成功的。是的,我在谷歌上搜索了很长时间,但似乎找不到合适的标签。 我尝试了以下方法: public partial class form1: Form { public form1() { InitializeComponent(); } Project.form2 newform2 =

好的,情况如下: 我想将form1中字符串的值保存到form2中的文本框中,编辑它并将其发送回,然后再次将其保存为form1中的字符串。这很容易,但我太笨了,不会成功的。是的,我在谷歌上搜索了很长时间,但似乎找不到合适的标签。 我尝试了以下方法:

public partial class form1: Form
{
    public form1()
    {
        InitializeComponent();
    }

    Project.form2 newform2 = new Project.form2();
    string oldtext = "Text here";

    void somefunction()
    {
        oldtext = newform2.getUpdateTxt();
    }
}

显然不行。因为它创建了一个无穷大。我还试着把

Project.form newform = new Project.form();
以自己的功能。解决循环,但现在它在初始化时重置值。还尝试以某种方式创建表单的父级,如本文所述,但没有帮助。
我能想到的最简单的解决方案是将要在表单间共享的值放在静态类的静态属性中:

public static class SharedVariables
{
    public static string OldText { get; set; }
}
然后,您可以使用以下命令将
TextBox.Text
设置为属性值:

textBox1.Text = SharedVariables.OldText;
您可以指定在另一个
文本框中输入的新值。Text
具有:

SharedVariables.OldText = textBox2.Text;

也就是说,根据表单的用途,这可能不是最好的解决方案。

\infinityloop\resetsvalues
无论这意味着什么,都不要这样做。阅读并接受#这不是社交媒体为什么不让这些字符串成为类的公共属性?@RufusL这不是我的问题。这是关于两个表单之间的交互,而不会因为新的初始化而导致循环或重置值。请您描述一个实际的例子,说明您正在谈论的内容?您的示例中,每个表单创建另一个表单的类的自己的私有实例,这对我来说毫无意义。您不希望每个表单都与表单的现有实例交互吗?@RufusL我的情况是,我有一个列表显示在列表框中,当我双击列表框中的选定项时,会打开一个新表单来编辑该值,并通过单击“完成”将新值保存到列表中。现在我想在表单中显示旧值
SharedVariables.OldText = textBox2.Text;