输入正确的用户名并通过后关闭登录表单

时间:2013-06-06 11:26:43

标签: winforms c#-4.0

我想在输入正确的使用通行证后关闭登录表单并显示主表单

if (isValidateUser == true)
        {

            HomePage homepage = new HomePage();
            homepage.Show();

            this.Close();
        }

但在此代码之后,所有应用程序都已关闭。 你能救我吗?

3 个答案:

答案 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]按钮。并确保用户无法按密码,直到密码有效。

Login HomePage