【问题标题】:How to close Multiple forms in Windows form Application如何在 Windows 窗体应用程序中关闭多个窗体
【发布时间】:2016-03-29 04:14:56
【问题描述】:

我正在使用 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

图片 - 2

图片 - 3

图片 - 4

【问题讨论】:

  • 您创建了第一个表单的另一个实例并将其隐藏,因此当前打开的第一个表单不会隐藏。您应该隐藏打开的实例。
  • 让您的表单继承自 IDisposable,并将它们放在 using () 语句中。

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


【解决方案1】:

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

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

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

您还可以在Program 类中保留对第一个表单的引用,然后再次使用对Hide 它或Show 它的引用。

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

【讨论】:

  • 谢谢。这适用于我的实时应用程序。我得到了我的预期。 @Reza Aghaei。
【解决方案2】:

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

当你点击 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

【讨论】:

    【解决方案3】:

    在 Form - 1 中编写以下代码

    在 Form - 2 中编写以下代码

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-07
      • 1970-01-01
      • 2011-04-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多