2

嗨,我正在用 c# 做一个简单的活动。我想使用一个按钮打开一个新的form2,当我按下该按钮时form1会自动关闭。这是我的代码:

        Form2 form2 = new Form2();
        form2.ShowDialog();
        this.Close(); 

现在我不知道我将使用什么方法来自动关闭form1。谢谢..

4

2 回答 2

4

无法工作,因为代码控制将在form2.ShowDialog();.

您必须以非模态方式显示 form2:

Form2 form2 = new Form2();
form2.Show();
this.Close(); 

或者我猜你可以通过隐藏表格来伪造它:

Form2 form2 = new Form2();
this.Visible = false;
form2.Show();
this.Visible = true;

尝试两个版本,看看哪个版本更适合您的情况。调用ShowDialog();会将表单显示为模态,导致所有用户鼠标/键盘输入仅限于 form2,直到您关闭它。

编辑: Form2 必须声明为成员变量,如果它在按钮事件中被 decalred,它将超出范围。

Form2 form2 = new Form2();
private void btnOK_Click(object sender, EventArgs e)
{
this.Visible = false;
form2.Show();
this.Visible = true;
}
于 2012-11-12T05:28:32.100 回答
3

而不是使用this.Close();usethis.Hide()和 on formclosure 事件Form2give form1.Show()

有关更多信息,请通过此链接(我之前问过这个问题)。

于 2012-11-12T05:30:05.220 回答