Поток для вашей первой формы все еще работает, потому что вы только звоните this.Hide
. Все, что делает, это hide форма; это не закрывает это. Вместо этого вам нужно использовать this.Close
, который закроет вашу исходную форму.
Если вы хотите убедиться, что все приложение закрывается, и в процессе закрыть все формы, которые все еще могут быть открыты, вы можете использовать метод Application.Exit
в любом месте кода вашей формы.
РЕДАКТИРОВАТЬ: Чтобы расширить мой последний комментарий, вы можете захотеть что-то вроде этого в вашем Program.cs
файле:
static class Program
{
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
SignInForm frmSignIn = new SignInForm();
if (frmSignIn.ShowDialog() == DialogResult.Yes)
{
//If the sign-in completed successfully, show the main form
//(otherwise, the application will quit because the sign-in failed)
Application.Run(new ControlPanelForm());
}
}
}