if(count == 1)关闭此表单并打开form2,怎么样?

时间:2013-11-25 21:47:51

标签: c#

如果(count == 1)它如何做它现在做的相同的东西,而不是隐藏,关闭并打开另一个表格(e.x form2)我怎么做?

我试过了.Close();但是在打开新表格的代码运行之前,它最终关闭了程序。

    private void button1_Click(object sender, EventArgs e)
    {

        try
        {

            string myConnection = "datasource=localhost;port=3306;username=dolfin;password=quack";
            MySqlConnection myConn = new MySqlConnection(myConnection);

            MySqlCommand SelectCommand = new MySqlCommand("select * from database1.logins where username='" + this.username_txt.Text + "' and password='" + this.password_txt.Text + "' ;", myConn);

            MySqlDataReader myReader;
            myConn.Open();
            myReader = SelectCommand.ExecuteReader();
            int count = 0;
            while (myReader.Read())
            {
                    count = count + 1;

            }
            if (count == 1)
            {
                MessageBox.Show("Username and password is correct.");
                this.Hide();
                Form2 f2= new Form2();
                f2.ShowDialog();
        }
            else if (count > 1)
            {

                MessageBox.Show("Duplicate Username and Password... Access Denied!");
            }
            else
                MessageBox.Show("Username and password is not correct... please try again.");
            myConn.Close();
        }
        catch (Exception ex)
        {

            MessageBox.Show(ex.Message);
        }
    }

1 个答案:

答案 0 :(得分:2)

您应该在program.cs文件中进行此类更改,因为目前您的第一个表单是您的应用程序主表单;如果不结束应用程序就无法关闭它,但这很容易改变。

而不是仅创建一个表单并将其用作整个应用程序主表单,创建您的登录表单,为它启动一个消息循环,当它结束时(即,当表单关闭时),您可以查看一个属性,你为它设置了(我使用的那个,或自定义属性)并根据该结果,你可以有条件地创建一个新表单并为该表单启动一个全新的消息循环,其中第二个表单现在是新的主要形式:

Form1 first = new Form1();
Application.Run(first);
if (first.DialogResult == DialogResult.Yes)
{
    Form2 second = new Form2();
    Application.Run(second);
}