修改了Winform集合;枚举操作可能无法执行
本文关键字:执行 操作 枚举 Winform 集合 修改 | 更新日期: 2023-09-27 18:36:10
我的代码是:
private void studentToolStripMenuItem_Click(object sender, EventArgs e)
{
foreach (Form frm in Application.OpenForms)
{
if (frm.Text == "student")
{
frm.Activate();
}
else
{
studetn obj = new studetn();
obj.MdiParent = this;
obj.Dock = DockStyle.Fill;
obj.Show();
}
}
}
Show() 命令修改您正在枚举的 Application.OpenForms 集合。这是不允许的。您应该在 foreach 循环之外创建并显示新表单:
private void studentToolStripMenuItem_Click(object sender, EventArgs e)
{
// Find the student form
Form frmStudent = null;
foreach (Form frm in Application.OpenForms)
{
if (frm.Text == "student")
{
frmStudent = frm;
break;
}
}
// if found - activate, if not found - create
if(frmStudent!=null)
{
frmStudent.Activate();
}
else
{
studetn obj = new studetn();
obj.MdiParent = this;
obj.Dock = DockStyle.Fill;
obj.Show();
}
}