如何在c#windows应用程序中打开表单?

时间:2015-09-09 07:41:14

标签: c#

我想为这个计划写一个简单的c#windows应用程序:
当表格加载计时器启动,检查并显示任何其他表格时,我有两种形式,形成一个启动计时器1和计时器1启动表格2,使用此代码:

ShowALARM frm = new ShowALARM();
frm.Show();
frm.listBox1.Items.Add(x);


使用计时器方法调用代码,每次调用代码,打开新表单!,我想检查表单是否打开,但是,如果为false则运行新表单。我可以解决吗?谢谢。

1 个答案:

答案 0 :(得分:1)

您可以使用代码Application.OpenForms获取所有打开的表单。要查找特定表单,您可以执行Application.OpenForms.OfType<Form1>().Any() From1,其中frm.listBox1.Items.Add(x);是您正在寻找的表单。

一条建议 - 不要写这样的代码:AddItem(object x)因为你正在打破SoC(关注点分离)。一种形式不应该对其他形式有太多了解。更好的方法是在目标表单上创建一个方法,如protected void TimerTickMethod() { if (!IsShowALARMFormOpened()) { ShowALARM frm = new ShowALARM(); frm.Show(); } } protected bool IsShowALARMFormOpened() { return Application.OpenForms.OfType<ShowALARM>().Any(); } ,并从其他表单中调用它。

代码示例:

onClick