Как я могу перемещаться между двумя формами без потери введенных данных - PullRequest
0 голосов
/ 02 июля 2019

У меня есть две формы, с которыми я хочу перемещаться вперед и назад без потери данных, которые я ввел в обе формы, когда я возвращаюсь в форму1 из формы2, данные остаются в форме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;
}

собираетсяобратно в form2 из form1 работает нормально, но проблема в том, что я теряю данные, которые я ввел в form2, когда я нажимаю next в form1, я хочу сохранить введенные данные в форме 2, возможно ли это?

1 Ответ

2 голосов
/ 02 июля 2019

Инкапсулируйте ваш экземпляр 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();
...