【问题标题】:Transfer datafrom one form to an other将数据从一种形式转移到另一种形式
【发布时间】:2013-06-18 09:57:44
【问题描述】:

我有一个 C# 应用程序,有两个表单(form1,form2)。在 btnTransfer_click 上的 form1 中,我打开第二个表单。

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 上我验证用户和密码,如果正确,我必须返回第一种形式并在单击按钮上获取此值。

在 Form2 中:

private void btnOk_Click(object sender, EventArgs e)
{
      //verify if txtUser and txtPassword are correct 
    //if are corrects i have to send back to first form
    this.Close();
}

我该怎么做? 谢谢!

【问题讨论】:

  • 您的第二个表单只有 2 个文本框,在那里完成了身份验证,那么您要传输到第一个表单的数据是什么?

标签: c# winforms data-transfer


【解决方案1】:

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!
    }
}

【讨论】:

    【解决方案2】:

    【讨论】:

    • 这似乎与网络有关?但 OP 只想在桌面应用程序的进程(主进程)中传输数据。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-06
    • 2023-04-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多