如何在Windows窗体应用程序中关闭多个窗体

时间:2016-03-29 04:14:56

标签: c# .net winforms visual-studio visual-studio-2015

我正在使用Visual Studio 2015中的Windows窗体应用程序。现在我的要求是在按钮点击时关闭多个窗体。

注意:我在下面提到了链接

closing-multiple-forms-in-c-sharp

How-to-Connect-forms-in-Csharp-windows-application

How to swap between forms in windows forms application

检查下面的图像我的工作情况。

图片 - 1 enter image description here

图片 - 2 enter image description here

图片 - 3 enter image description here

图片 - 4 enter image description here

3 个答案:

答案 0 :(得分:2)

您创建了第一个表单的另一个实例并将其隐藏,因此您当前打开的第一个表单将不会隐藏。

您应该隐藏打开的实例。为此,您可以使用Application.OpenForms

找到它
var first = Application.OpenForms.OfType<FirstForm>().FirstOrDefault();
if (first != null)
    first.Hide();

此外,您可以在Program课程中保留对第一个表单的引用,并再次使用该引用HideShow

请注意,Application.OpenForms会返回可见的表单,如果您隐藏表单,则该表单将不再出现在该集合中。

答案 1 :(得分:1)

简单..当你调用form2然后你必须传递form1的引用并隐藏主窗体并在单击button1并关闭form2时打开frmshow ..

点击BtnAnalysis ...

 private void BtnAnalysis_Click(object sender, EventArgs e)
 {
     Form2 frm2 = new Form2();
     frm2.Show(this);        // here the reference of form1 pass to the form2
 }

在你的Form2中你必须像这样做代码......

    private Form1 frm;
    public Form2()
    {
        InitializeComponent();
    }

    public void Show(Form1 frm1)
    {
        frm = frm1;      // here assign the reference of form1 to form for hiding purpose
        this.Show();
    }

    private void button1_Click(object sender, EventArgs e)
    {
        frmshow frmshw = new frmshow();
        frm.Hide();        // hide mainform i.e. form1
        this.Close();      // close the form2
        frmshw.Show();     // show the frmshow form
    }

它的工作肯定......你必须尝试这个...如果你想要源然后联系 我的电子邮件。 ketanvavadia@gmail.com

答案 2 :(得分:0)

在表格-1中写下以下代码

enter image description here

在表格-2中写下以下代码 enter image description here