你如何完全关闭c#winform?

时间:2015-03-07 08:34:17

标签: c# winforms

我在一个项目中有2个表单。一个表格用作"登录屏幕"另一个在登录后用作程序。完全关闭表单时遇到问题,因为如果我按下' x'右上角项目的按钮仍然可以作为后台进程找到。

问题的GIF:click me

代码我正在使用:

    private void bVpisi_Click(object sender, EventArgs e)
    {
        SqlConnection conn = new SqlConnection(@"Data Source=LUKA-PRENOSNIK\SQLEXPRESS;Database=Registracija;Trusted_Connection=True");
        SqlDataAdapter sda = new SqlDataAdapter("SELECT COUNT(*) FROM Registracija WHERE Up_ime='" + tbUp_ime.Text + "' AND Geslo='" + tbGeslo.Text + "'", conn);
        DataTable dt = new DataTable();
        sda.Fill(dt);
        if (dt.Rows[0][0].ToString() == "1")
        {
            this.Hide();
            Glavna g = new Glavna();
            g.Show();
        }
        else
        {
            MessageBox.Show("Vnesena kombinacija uporabniškega imena in gesla nista pravilna!");
        }
    }
}

谢谢你或你的帮助!

3 个答案:

答案 0 :(得分:2)

如果您只有这两个表单,登录表单和此主表单,那么使用

完全关闭应用程序会更好
Application.Exit();

这将关闭整个应用程序,线程和其他应用程序依赖的后台进程运行..

答案 1 :(得分:0)

formInstance.Close()通常有效。 Hide()可能会将其保留在后台。我想知道您是否在到达该计划之前隐藏了您的登录表格或任何其他表格。

答案 2 :(得分:0)

使用"关闭" C#中的函数,这里的一个例子

        private void button1_Click(object sender, EventArgs e)
{
    SqlConnection conn = new SqlConnection(@"Data Source=LUKA-PRENOSNIK\SQLEXPRESS;Database=Registracija;Trusted_Connection=True");
    SqlDataAdapter sda = new SqlDataAdapter("SELECT COUNT(*) FROM Registracija WHERE Up_ime='" + tbUp_ime.Text + "' AND Geslo='" + tbGeslo.Text + "'", conn);
    DataTable dt = new DataTable();
    sda.Fill(dt);
    if (dt.Rows[0][0].ToString() == "1")
    {
        this.Hide();
        Glavna g = new Glavna();
        g.Show();
        Close();
    }
    else
    {
        MessageBox.Show("Vnesena kombinacija uporabniškega imena in gesla nista pravilna!");

    }

它将关闭表单,如果有其他表单打开,那么它们将不会关闭。如果要导航到其他表单,请使用此代码

        Form2 form2 = new Form2(); // This is the code to navigate to the right form
        form2.Tag = this;
        form2.Show(this);
        Hide();