我想在输入正确的使用通行证后关闭登录表单并显示主表单
if (isValidateUser == true)
{
HomePage homepage = new HomePage();
homepage.Show();
this.Close();
}
但在此代码之后,所有应用程序都已关闭。 你能救我吗?
答案 0 :(得分:0)
你没有说太多,所以我会做出一些假设。
我想这是来自LoginForm
的代码。我还假设您在表单的Application.Exit()
事件的处理程序中调用Close
。这就是关闭你的申请。您应该标记某人(例如使用bool
并在调用true
之前将其设置为Close()
)表单应该关闭,而不是调用Application.Exit()
。
答案 1 :(得分:0)
来自Form.Close方法的MSDN
当表单关闭时,在对象中创建的所有资源都是 关闭,表格处理。您可以阻止关闭表单 在运行时通过处理Closing事件并设置Cancel CancelEventArgs的属性作为参数传递给您的事件 处理程序。如果您要关闭的表单是您的启动表单 申请,你的申请结束。
您可以使用Hide()方法隐藏当前表单而不是关闭它。
答案 2 :(得分:0)
这是我的解决方案:
您启动HomePage
并在OnLoad()
方法覆盖显示登录表单
public partial class HomePage : Form
{
public HomePage()
{
InitializeComponent();
}
protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
var dlg=new LoginForm();
dlg.StartPosition=FormStartPosition.CenterScreen;
if(dlg.ShowDialog()==DialogResult.OK)
{
userStatusLabel.Text=dlg.UserName;
}
else
{
this.Close();
}
}
}
登录表单需要公开登录信息
public string UserName { get { return usrText.Text; } }
和[OK]
按钮的DialogResult
属性设置为DialogResult.OK
,类似于[Cancel]
按钮。并确保用户无法按密码,直到密码有效。