1

我正在开发具有登录功能的项目

当我运行项目时,有一个表单 ( form1) 运行登录。在我点击登录按钮后构建另一个表单(form2) - 这是我的程序的表单。并使第一个表单 ( form1) 隐藏。

问题是当我按下 form2 中的 X 按钮时,它已关闭,但 form1 仍在运行。

我试图关闭form1而不是隐藏...但这将form2在启动前关闭

form1

this.Hide();
Form2 x = new Form2();                 
x.Show();
4

4 回答 4

6

我认为你的表格是错误的。

Form1 应该是您的应用程序,并在首次加载时将 Form2 显示为对话框,然后当它关闭时,您可以处理结果并决定是继续还是关闭应用程序。

就像是:

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
        Load += new EventHandler(Form1_Load);
    }

    void Form1_Load(object sender, EventArgs e)
    {
        Form2 myDialog = new Form2();
        if (myDialog.ShowDialog() == System.Windows.Forms.DialogResult.Cancel)
        {
            // failed login
            // exit application
        }
        // all good, continue
    }
}
于 2013-03-01T01:43:19.940 回答
1

您可以订阅子表单FormClosed事件并使用它来调用Close父表单。

x.FormClosed += new FormClosedEventHandler(x_FormClosed);

void x_FormClosed(object sender, FormClosedEventArgs e)
{
    this.Close();
}
于 2013-03-01T01:43:48.693 回答
0

你去你的form2然后在表单的情况下寻找FormClosed。

将此代码放入您的事件处理程序中:

private void Form2_FormClosed(object sender, FormClosedEventArgs e)
    {
        Application.Exit();
    }

FormClosed 是用户关闭表单时的事件。因此,当您关闭表单时,输入一个将退出您的应用程序的代码,即 -applicationn.exit();-

希望这会奏效。

于 2013-03-01T08:33:05.667 回答
0

试试这个,如果授予访问权限,在登录按钮中

private void logInBtn_Click(object sender, EventArgs e)
        {
            Form2 frm = new Form2();
            frm.ShowDialog();
            this.Hide();
        }

然后在form2中,如果你想退出

private void exitBtn_Click(object sender, EventArgs e)
        {
            Application.Exit();
        }

希望这可以帮助。

于 2013-03-01T01:43:40.603 回答