按名称关闭特定表格

时间:2014-04-14 07:32:05

标签: c# winforms

我搜索了一下,我只能找到循环通过FormCollection和关闭表单的解决方案。但是,我想特定关闭一个表单(如果它打开)。有谁知道如何实现这样的目标?

if(Form.Name("myForm") == open)
    close(Form.Name("myForm"));

2 个答案:

答案 0 :(得分:1)

当您关闭表单Application.OpenForms 更改 时,这就是您必须关闭 两个步骤的原因

  List<Form> forms = new List<Form>();

  // All opened myForm instances
  foreach(Form f in Application.OpenForms)
    if (f.Name == "myForm")
      forms.Add(f);

  // Now let's close opened myForm instances
  foreach (Form f in forms)
    f.Close(); 

或者使用 Linq 进行更简洁的实现:

   Application.OpenForms
     .OfType<Form>()
     .Where(form => String.Equals(form.Name, "myForm"))
     .ToList()
     .ForEach(form => form.Close());

答案 1 :(得分:-1)

您也可以执行FORMNAMEHERE.ActiveForm.Close();