使用c#开发Windows应用程序。我想关闭应用程序并在单击按钮后显示新表单,我做了,但每次我cliecked按钮,它显示另一个窗口,当我去任务管理器,形式isntance仍在运行。我想要避免这种情况。我正在使用this.close()函数退出表单。
答案 0 :(得分:2)
假设您有Form1
和Form2
。
Form1
中的代码应该是这样的:
public partial class Form1 : Form
{
private Form2 _form2;
public Form1()
{
InitializeComponent();
_form2 = new Form2();
_form2.VisibleChanged += new EventHandler(_form2_VisibleChanged);
}
void _form2_VisibleChanged(object sender, EventArgs e)
{
if (!_form2.Visible)
Show();
}
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
e.Cancel = true;
this.Hide();
_form2.Show();
}
}
在Form2
中你需要做的就是:
private void Form2_FormClosing(object sender, FormClosingEventArgs e)
{
e.Cancel = true;
Hide();
}
当然,您必须对FormClosing
中的事件Form2
表示怀疑,但如果您是通过设计师(表单Properties
),点击Events
图标)将这两行粘贴到它创建的方法中
这段代码在做什么?
Form1
:
Form2
Form1_FormClosing
方法中,我们所做的只是 隐藏 表单,而不是在用户关闭它时关闭它,并显示{{1 }} Form2
活动VisibleChanged
的实例不可见,则会显示Form2
。 Form1
:
如果您想在单击按钮时执行此操作,则只需按下按钮上的Form2
事件而不是Click
事件,即可完成相同操作。