我有一个使用此代码的登录表单:
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)传递给标签,但我无法弄明白。谁能在这帮助我?
答案 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;