如何在C#中加载和卸载表单。 所以我有2个表单,登录表单和欢迎表单,所以在这里,我使用session,如果session是1,当登录表单加载它时会自动关闭并加载欢迎表单。
我使用此代码,但它不起作用,登录表单仍然打开。
private void Login_Form_Load_1(object sender, EventArgs e)
{
string st = "1";
SqlConnection conn = new SqlConnection();
conn.ConnectionString = @"Data Source=GATEWAY-PC\SQLSERVER;Initial Catalog=train_system;Integrated Security=True";
SqlCommand cmd = new SqlCommand("SELECT * FROM employer WHERE session='" + st + "'",conn);
conn.Open();
SqlDataReader dr1;
dr1 = cmd.ExecuteReader();
if (dr1.Read())
{
string dr = dr1[2].ToString();
if (dr == "1")
{
Form1 fm = new Form1();
fm.Show();
Login_Form lf = new Login_Form();
lf.Close();
}
else {
}
}
else {
}
}
答案 0 :(得分:2)
this
关键字引用类的当前实例,并且还用作扩展方法的第一个参数的修饰符。
if (dr1.Read())
{
string dr = dr1[2].ToString();
if (dr == "1")
{
this.Close();
Form1 fm = new Form1();
fm.Show();
}
}
这行代码
Login_Form lf = new Login_Form();
lf.Close();
将创建一个全新的Login_Form实例,因此您将遇到此问题
答案 1 :(得分:0)
如果登录表单是您的主表单,您可以在欢迎表单加载事件中使用this.hide();
隐藏它,然后您可以在欢迎表单上创建结束事件,然后您可以使用Application.Exit();
关闭应用程序中的所有内容......
if (dr1.Read())
{
string dr = dr1[2].ToString();
if (dr == "1")
{
Form1 fm = new Form1();
fm.Show();
this.hide();
}
}
private void Form_FormClosing(object sender, FormClosingEventArgs e)
{
Application.Exit();
}