关闭窗口形式

时间:2011-03-04 07:11:24

标签: visual-studio-2008 c#-3.0

使用c#开发Windows应用程序。我想关闭应用程序并在单击按钮后显示新表单,我做了,但每次我cliecked按钮,它显示另一个窗口,当我去任务管理器,形式isntance仍在运行。我想要避免这种情况。我正在使用this.close()函数退出表单。

1 个答案:

答案 0 :(得分:2)

假设您有Form1Form2

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

  • 上述第2步,但没有显示任何内容。

如果您想在单击按钮时执行此操作,则只需按下按钮上的Form2事件而不是Click事件,即可完成相同操作。