如何在两种形式之间来回移动而又不丢失输入的数据

时间:2019-07-02 16:09:50

标签: c# .net winforms dialogresult

我有两种形式,我想来回移动而不丢失在两种形式上输入的数据,当我从形式2返回到形式1时,数据保留在形式1中,但是当我进入形式2时,我之前输入过数据,数据全部消失了,对此有解决方案吗?

第一种形式:

public userform1()
{
    InitializeComponent();
}

private void jThinButton1_Click(object sender, EventArgs e)
{
    userform2 form2 = new userform2();
    form2.Show();

    this.Hide();
    form2.Hide();
    form2.ShowDialog();
    this.Show();

第二种形式:

private void jThinButton3_Click(object sender, EventArgs e)
{
    this.DialogResult = DialogResult.OK;
}

从form1返回form2可以正常工作,但是问题是当我在form1中单击下一步时,我丢失了在form2中输入的数据,我想将输入的数据保留在form 2中吗?

1 个答案:

答案 0 :(得分:2)

将userform2实例封装在一个只读属性中,该属性将创建一个新实例(如果尚未创建的话)

private userform2 _form2;
private userform2 form2
{
    get
    {
        if (_form2 == null)
            _form2 = new userform2();
        return _form2;
    }
}

然后像这样使用它

this.Hide();
form2.ShowDialog();
this.Show();

现在每当您访问form2时,它都是与userform2相同的实例。

或者只是如果您只想使用该字段,而是在构造userform1时创建实例。

private userform2 form2 = new userform2();