如何在现有表单中设置值并从新表单恢复为原始表单?

时间:2019-03-15 20:14:00

标签: c# .net windows forms

所以我有一个InvCert表格 我打开一个表格GetSomeInfo的实例 在GetSomeInfo中,我有文本框等,希望这些.Text值成为原始形式InvCert的值。我假设Form.stringname =可以允许我执行此操作,但是我的值并未与原始表单交叉。我在同一时间没有任何错误消息。

'frmInvCert.certType = comboInvLvl.Text;
frmInvCert.thisYear = dateTimeCurrent.Text;
frmInvCert.myFileName = txtInvestor.Text;
frmInvCert.getAdress = txtAddress.Text;
string certType = comboInvLvl.Text;
new frmInvCert().Show();
this.Close();`

然后,使这些值在方法中使用。但是程序不会等到我们返回原始表单来填写这些值。它只是创建空白。

this.Hide();
                new frmGetSomeInfo().Show();
                //creates even if values not filled!
                //May need to retun to original instead somehow or find out how to put these mthods into the new form
                //initialize checkboxes after with paths connected
                //initialize tab pages with paths connected
                if(thisYear != null && certType != null && myFileName != null)
                {
                    CreateCertificate();
                }
                CreateCertificate();

2 个答案:

答案 0 :(得分:0)

在此行:

new frmInvCert().Show();

您正在使用一个新实例,而不是您已设置值的实例。像这样更改它:

frmInvCert frm = new frmInvCert();
frm.certType = comboInvLvl.Text;
frm.thisYear = dateTimeCurrent.Text;
frm.myFileName = txtInvestor.Text;
frm.getAdress = txtAddress.Text;
frm.Show();

答案 1 :(得分:0)

您正在创建frmInvCert的新实例。改为这样:

new frmInvCert form = new frmInvCert();
form.certType = comboInvLvl.Text;
form.thisYear = dateTimeCurrent.Text;
form.myFileName = txtInvestor.Text;
form.getAdress = txtAddress.Text;
string certType = comboInvLvl.Text;
form.Show();
this.Close();