我有一个 WinForms 应用程序,带有登录表单和主表单。登录表单包含两个供用户输入凭据的文本框、一个确定按钮和一个取消按钮。以下代码是 OK 按钮的事件处理程序:
private void button_OK_Click(object sender, EventArgs e)
{
if (authenticated())
{
this.Close();
Application.Run(new MainWindow());
}
else
{
MessageBox.Show("Incorrect credentials", "Retail POS", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
}
}
这样做的问题是,当主窗体打开时,它会保留登录对话框。我试图通过调用ShowDialog()from将登录表单显示为模式对话框来完成所需的行为Program.cs,但这并没有实现所需的行为。
请注意,主窗体有一个注销选项。也就是说,它应该删除主表单并再次显示登录表单。
Program.cs 代码:
static void Main()
{
LoginForm loginForm = new LoginForm();
loginForm.ShowDialog();
}
这会产生一个错误,表示无法启动第二个消息循环。