从登录将用户名传递给MainFrom

时间:2014-03-25 16:46:29

标签: c# wpf winforms

我有一个使用此代码的登录表单:

    public bool FMP = false;
    public void login()
    {
        try
        {
            string utilizadores = "Select * FROM Utilizador where Nome=@Nome";
            SqlConnection conn;
            SqlCommand cmd;
            SqlDataReader dr;

            conn = new SqlConnection(Ligacao.cn);
            conn.Open();
            cmd = new SqlCommand(utilizadores, conn);
            cmd.Parameters.Add(new SqlParameter("@Nome", textBox1.Text));
            dr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
            while (dr.Read())
            {
                Dados.nome = Convert.ToString(dr["Nome"]);
                Dados.password = Convert.ToString(dr["Password"]);
                Dados.nivel = Convert.ToInt32(dr["Nivel"]);
            }
            conn.Close();

            if (Dados.password == textBox2.Text)
            {
                FMP = true;
                this.Dispose();

            }
            else
            {
                MessageBox.Show("Login Incorrecto!");
                FMP = false;
            }
        }
        catch (Exception ex)
        {
            MessageBox.Show("ERRO" + ex);
        }
    }

    private void button1_Click(object sender, EventArgs e)
    {
        login();

    }
}

之后,如果登录成功,则启动应用程序的mainform! 所以,在mainform中,我需要获取插入文本框中的用户名,我需要将值(如会话ID)传递给标签,但我无法弄明白。谁能在这帮助我?

2 个答案:

答案 0 :(得分:1)

1)在另一个窗口和登录窗口的Unload事件上创建一个公共字符串属性,将属性的值设置为文本框值。

2)为另一个窗口创建一个构造函数,该构造函数将参数作为表示登录窗口文本框值的字符串。

3)创建一个全局变量(公共静态字符串)并将值存储在登录窗口的Unload事件中。

我从

提到了这个

Pass textbox value from one window to another window in WPF 你也可以通过这个主题Pass Values between XAML

获得想法

答案 1 :(得分:0)

使用

等属性创建一个静态类
public static class Globals
{
    public static string UserName { get; set; }
}

然后将用户名分配给Property UserName

if (Dados.password == textBox2.Text)
{
     Globals.UserName=Dados.nome; //or you can directy assign Globals.UserName=textBox1.Text
     FMP = true;
     this.Dispose();
}

并且您可以在应用程序的任何位置使用Globals.UserName。如果您将此值分配给标签

lable1.Content=Globals.UserName;