1
我的应用程序在单击按钮时启动了非模态对话框。如果用户再次点击该按钮,我想检查该表单是否已在运行,并想知道它是否可能?如何检查是否已启动非模态对话框
我的应用程序在单击按钮时启动了非模态对话框。如果用户再次点击该按钮,我想检查该表单是否已在运行,并想知道它是否可能?如何检查是否已启动非模态对话框
您可以使用Application.OpenForms Property
if (Application.OpenForms.OfType<YourNonModalFormType>().Any())
// one is already opened
如果你想关闭这个形式:
var form = Application.OpenForms.OfType<YourNonModalFormType>().FirstOrDefault();
if (form != null)
{
// launched
form.Close();
}
另一种方法是手动声明一个变量来跟踪你的窗体实例:
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private Form2 f2 = null;
private void button1_Click(object sender, EventArgs e)
{
if (f2 == null || f2.IsDisposed)
{
f2 = new Form2();
f2.Show();
}
else
{
f2.Close();
}
}
}
谢谢。如果它已经启动,我可以通过这种方式关闭它吗? –
@PaulSnow没问题,已更新 –
其实我正在使用.net 3.5。看起来好像它不能在我的代码中使用。还有其他的方式吗? –