gpt4 book ai didi

c - 如何在没有循环的情况下从 MDI Parrent 激活 MDI 子窗体

转载 作者:太空宇宙 更新时间:2023-11-04 04:46:38 26 4
gpt4 key购买 nike

您好,我想打开来自 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();
}
}

关于c - 如何在没有循环的情况下从 MDI Parrent 激活 MDI 子窗体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20213625/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com