-2
private void btn_Login_Click(object sender, EventArgs e)
{
    ManageMent.login_check(txtUserName.Text, txtPassword.Text);

    if (ManageMent.Login_Check!=false)
    {
        Control_Center control_panel = new Control_Center();

        control_panel.Show();

        this.Hide();
    }
}

我在我的登录按钮后面使用这些代码,但这会将主登录表单隐藏在某个地方,当我关闭控制面板时它仍然在后面运行,我想在身份验证成功后立即关闭它..我试过这个。关(); 但它限制控制面板打开

4

2 回答 2

0

我认为您应该使用Control_Center

Application.Run(new Control_Center());

在显示您的 control_center 表单之前,您应该创建一个 LoginForm。例如,您可以在加载表单时执行此操作。

public partial class Control_Center: Form
{
    public Control_Center()
    {
        InitializeComponent();
    }

    private void Control_Center_Load(object sender, EventArgs e)
    {
        LoginForm loginForm = new LoginForm();
        var authorizationResult = loginForm .ShowDialog();
        if (authorizationResult  != System.Windows.Forms.DialogResult.OK)
        {
            this.Close();
        }
    }
}
于 2013-03-18T13:52:54.367 回答
0

您还有更多选择......

实际上我认为你的登录表单作为主线程运行,所以关闭它不会让你在其中使用另一个表单,我的意思是主线程,所以诀窍是使用简单的线程......

if (ManageMent.Login_Check!=false)
    {
            new System.Threading.Thread(new System.Threading.ThreadStart(()=>{
                Application.Run(new Control_Center());
            })).Start();

            this.Dispose();
}

如果您只想最后关闭所有表单,我的意思是开玩笑,那么

    if (ManageMent.Login_Check!=false)
        {
          this.Hide();
          Control_Center control_panel = new Control_Center();
          control_panel.ShowDialog(this);
          this.Close();
        }
于 2013-03-18T13:50:47.313 回答