将对话框上的值textBox传递给mainForm标签

时间:2014-05-08 23:20:47

标签: c# winforms dialog return-value

首先这可能看起来像一个简单的问题,但我真的很新c#所以请耐心等我:)。 我知道这可能是一个已经回答的问题,但在这里和谷歌搜索并不能真正满足我的需求。

所以我有一个对话框表格(登录表单),用户必须输入他的密码&用户名

private void loginButton_Click(object sender, EventArgs e)
{
    try
    {
        var sr = new System.IO.StreamReader("C:\\" + inlogNaamTextbox.Text + "\\Login.txt");
        gebruikersnaam = sr.ReadLine();
        passwoord = sr.ReadLine();
        sr.Close();

        if (gebruikersnaam == inlogNaamTextbox.Text && passwoord == inlogPasswoordTextbox.Text)
        {
            MessageBox.Show("Je bent nu ingelogd!", "Succes!");
            this.Dispose();
        }
        else
            MessageBox.Show("Gebruikersnaam of wachtwoord fout!", "Fout!");
    }

    catch (System.IO.DirectoryNotFoundException ex)
    {
            MessageBox.Show("De gebruiker bestaat niet!", "Fout!");
    }
}

当他点击loginButton时,弹出mainForm(实际程序)。在这个mainForm中,我有一个标签,应该显示在登录表单中输入的用户名(Hello,用户名)

所以我真的没有任何代码可以将textBox的值传递给我自己编写的另一个表单上的标签,所以我希望你的家伙可以帮助我。

这是mainForm上的代码

        private void indexForm_Load(object sender, EventArgs e)
    {
        startForm loginForm = new startForm();
        loginForm.ShowDialog();
    }

1 个答案:

答案 0 :(得分:1)

我会在您的登录表单中添加一个公开用户名

的属性
public string Username
{
    get { return inlogNaamTextbox.Text; }
}

然后,您可以从弹出登录表单的表单中访问该属性。

startForm loginForm = new startForm();
loginForm.ShowDialog();
userLabel.Text = loginForm.Username;

注意"更好"答案是使用MVC或MVVM模型将该信息绑定到与UI表单分开的模型。但是,将这些模型应用于WinForms并非易事(尽管可以这样做)。