将数据从一个表单传输到另一个表单

问题描述:

我有一个C#应用程序,具有两种形式(form1,form2)。在form1上btnTransfer_click打开第二种形式。将数据从一个表单传输到另一个表单

private void btnTransfer_Click(object sender, EventArgs e) 
{ 
    Form2 frmConn = new Form2 ; 
    frmConn .Show(); 

    //i need here values from second form 

} 

在第二形式我有2个文本框(txtUser,txtPassword)和按钮(btnOk)。在按钮btnOk我验证用户名和密码,并且如果是正确的,我必须回来第一形式和得到这个值点击按钮。

在窗体2:

我怎样才能做到这一点? 谢谢!

+0

您的第二个表单只有2个文本框,那么认证在那里完成,那么您想要传输到第一个表单的数据是什么? –

在类form2,创建两个public类属性,每一个文本框的值:

private String _username = null; 
public String UserName { get { return _username; } } 
private String _password = null; 
public String Password { get { return _password; } } 

form2您可以验证并分配给属性:

private void btnOk_Click(Object sender, EventArgs e) 
{ 
    //verify if txtUser and txtPassword are correct 

    if (correct) 
    { 
     _username = txtUser.Text; 
     _password = txtPassword.Text; 
    } 
    this.Close(); 
} 

然后,您可以在form1代码中检索它们,例如:

private void btnTransfer_Click(Object sender, EventArgs e) 
{ 
    //This using statement will ensure that you still have an object reference when you return from form2... 
    using (Form2 frmConn = new Form2()) 
    { 
     frmConn.Show(); 

     String user = frmConn.UserName; 
     String pass = frmConn.Password; 

     if (!String.IsNullOrEmpty(user) && !String.IsNullOrEmpty(pass)) 
      //do something with them, they are valid! 
    } 
} 

+0

这似乎与网络有关?但OP只是想在桌面应用程序的一个进程(主进程)中传输数据。 –