【发布时间】:2013-10-03 21:18:38
【问题描述】:
我想检查一个表单的实例是否被打开并打开现有的实例来更新一个文本框,否则创建一个新的实例。
搜索后发现:How to check if a windows form is already open, and close it if it is?
从我尝试过的接受的答案
try
{
foreach (Form fm in Application.OpenForms)
{
if (fm is Form2)
{
Form2 n1 = (Form2)Application.OpenForms["Form2"];
n1.textBox1.Text = textBox1.Text;
break;
}
else
{
Form2 n1 = new Form2();
n1.textBox1.Text = textBox1.Text;
n1.Show();
}
}
}
catch (InvalidOperationException)
{
}
除了这个代码会抛出一个InvalidOperationException(我已经注意到了),代码不起作用,因为如果一个实例已经存在,它仍然会创建一个新实例。
我做错了什么?
【问题讨论】: