我有一份MDI表格。如果另一个表单正在运行,我想检查此表单的正在运行的子项。类似的东西:
if (this.MdiParent.MdiChildren.Contains(MyForm2))
{
//Do Stuff
}
其中MyForm2
是我要查找的表单的名称(类名)。编译器说“类名在这一点上无效”。
如何正确地做到这一点?请注意,我可以在该momemnt上运行多个“MyForm2”实例(好吧,使用不同的实例名称!)
答案 0 :(得分:2)
只需创建一个循环来遍历MdiChildren集合,以查看是否存在任何形式的指定Type。包含需要特定实例才能返回有效数据:
foreach (var form in this.MdiParent.MdiChildren)
{
if (form is MyForm2)
{
// Do something.
// If you only want to see if one instance of the form is running,
// add a break after doing something.
// If you want to do something with each instance of the form,
// just keep doing something in this loop.
}
}
答案 1 :(得分:2)
您需要检查每个孩子的类型。
例如,您可以使用is
关键字(more info)来确定孩子的类型是否正确:
if (this.MdiParent.MdiChildren.Any(child => child is MyForm2))
{
}
.Any()
方法需要引用System.Linq
。 Read more about Any()