您好,我想打开来自 MDI Parent 的表格。
如果 For 已经打开,那么它应该被激活或打开新表格..现在我正在使用 foreach
循环。但我不想使用循环。
foreach (Form frm in Application.OpenForms)
{
if (frm is FrmPrd)
{
frm.Activate();
frm.BringToFront();
}
else
{
FrmPrd _OFrmPrd = new FrmPrd();
_OFrmPrd.Show();
return;
}
}
}
请。建议我如何在没有循环的情况下使用它。
使用 Linq 隐藏循环:
var form = Application.OpenForms.OfType<FrmPrd>().FirstOrDefault();
if (form == null) new FrmPrd().Show();
else {
form.WindowState = FormWindowState.Normal;
form.Activate();
}
或者只是不要丢失对实例的跟踪,这样您根本就不必循环,这是更好的解决方案,因为它还避免了 Application.OpenForms 中的错误:
FrmPrd productForm;
private void ShowProductButton_Click(object sender, EventArgs e) {
if (productForm == null) {
productForm = new FrmPrd();
productForm.FormClosed += (s,ea) => productForm = null;
productForm.Show();
}
else {
productForm.WindowState = FormWindowState.Normal;
productForm.Activate();
}
}
我是一名优秀的程序员,十分优秀!