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。看起來好像它不能在我的代碼中使用。還有其他的方式嗎? –