您能告诉我如何关闭第一个应用程序并立即运行第二个应用程序?
第一步:(登录验证)
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Login());
}
第二步:(运行主程序)
如果用户成功登录到程序,我需要关闭登录应用程序并运行名为“Main”的新应用程序。
登录检查如下:
if (access.access == true)
{
Application.Run(new Main());
Close();
}
else
MessageBox.Show("Přihlašovací jméno nebo heslo neni správné");
调试错误:
Create a second message loop on a single thread is an invalid operation. Instead, use the Application.RunDialog or form.ShowDialog.
我认为我的问题的最佳答案是使用ShowDialog
和DialogResult
,但我不知道如何将它们用于我的设置。
答案 0 :(得分:1)
查看Creating a Windows Forms Application With Login
这里的不同之处在于Main仍然运行frmMain
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new frmMain());
}
主窗体处理frmLogin
public partial class frmMain : Form
{
frmLogin _login = new frmLogin();
public frmMain()
{
InitializeComponent();
_login.ShowDialog();
if (_login.Authenticated)
{
MessageBox.Show("You have logged in successfully " + _login.Username);
}
else
{
MessageBox.Show("You failed to login or register - bye bye","Error",MessageBoxButtons.OK,MessageBoxIcon.Error);
Application.Exit();
}
}
}
答案 1 :(得分:1)
您可以在进入主循环之前运行模态对话框询问凭据
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
bool validated = false;
using(frmLogin fLogin = new frmLogin())
{
if(fLogin.ShowDialog() == DialogResult.OK)
validated = true;
}
if(validated)
Application.Run(new Main());
else
MessageBox.Show("Bye");
}