我如何检查窗体是否在c# windows应用程序中打开
本文关键字:windows 应用程序 是否 窗体 何检查 检查 | 更新日期: 2023-09-27 18:11:55
我想为这个计划写一个简单的c# windows应用程序:
当表单加载定时器启动时,检查并显示任何另一个表单,我有两个表单,表单1启动定时器1和定时器1启动表单2与此代码:
ShowALARM frm = new ShowALARM();
frm.Show();
frm.listBox1.Items.Add(x);
用计时器方法调用代码,用每个调用那个代码,打开新的窗体!,我想检查,看看是否形式是开放的,但是,如果false,然后运行新的形式。
您可以使用代码Application.OpenForms
获得所有打开的表单。要找到特定的形式是开放的,您可以执行Application.OpenForms.OfType<Form1>().Any()
,其中From1
是您正在寻找的形式。
一条建议-不要写这样的代码:frm.listBox1.Items.Add(x);
,因为你正在打破SoC(关注点分离)。一种形式不应该知道太多其他形式。更好的方法是在目标表单上创建一个方法,如AddItem(object x)
,并从其他表单调用它。
代码示例:
protected void TimerTickMethod()
{
if (!IsShowALARMFormOpened())
{
ShowALARM frm = new ShowALARM();
frm.Show();
}
}
protected bool IsShowALARMFormOpened()
{
return Application.OpenForms.OfType<ShowALARM>().Any();
}