【问题标题】:Closing multiple forms C#关闭多个表单 C#
【发布时间】:2018-12-27 10:54:20
【问题描述】:

我目前正在使用 C# windows 窗体。 我有 40 个 cs 文件,当应用程序工作时: 按一个按钮 -> 在第一个表单上打开新表单,然后按另一个按钮在前一个表单上打开另一个表单。

现在,每当我点击多个表单时,当我按下不同的按钮时,其他表单都不会自行关闭,它们都会留在后台。

现在,如果我使用 this.Close();它与 1 一起工作,但我得到了 40 个 cs 文件,而且很难全部编译..

寻找任何建议? 谢谢大家的帮助!

public partial class Costumers_Orders : Form
{
    public Costumers_Orders()
    {
        InitializeComponent();
    }

    private void button1_Click(object sender, EventArgs e)
    {
        NewCostumer mm = new NewCostumer();
        mm.Show();
    }

    private void button2_Click(object sender, EventArgs e)
    {
        Remove_Customer mm = new Remove_Customer();
        mm.Show();
    }

    private void Costumers_Orders_Load(object sender, EventArgs e)
    {

    }

    private void button3_Click(object sender, EventArgs e)
    {
        Show_Edit_Customer mm = new Show_Edit_Customer();
        mm.Show();
    }

    private void button4_Click(object sender, EventArgs e)
    {
        Orders_report mm = new Orders_report();
        mm.Show();
    }
}

【问题讨论】:

  • 请发布您的代码,以便我们为您提供帮助。
  • “现在,如果我使用 this.Close(); 它与 1 一起工作,但我得到了 40 个 cs 文件,很难全部编译......” - 不清楚你是什么在这里问。您似乎对一种表单有一个可行的解决方案,但您不愿意为所有 40 个表单实施它。

标签: c# winforms dialog


【解决方案1】:

假设您一次只希望打开一个表单,并且“Costumers”是主要表单并且无法关闭:

private void button1_Click(object sender, EventArgs e)
{
    ShowForm(new NewCostumer());
}

private void ShowForm(Form newForm)
{
    List<Form> forms = new List<Form>();
    foreach (Form frm in Application.OpenForms)
    {
        if (!(frm is Costumers))
        {
            forms.Add(frm);
        }
    }
    foreach (Form frm in forms)
    {
        frm.Close();
    }
    newForm.Show();
}

还有其他方法可以做到这一点。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-03
    • 2014-10-07
    • 2013-03-11
    • 1970-01-01
    • 2014-10-06
    • 1970-01-01
    相关资源
    最近更新 更多