我正試圖創建一個可重用的函數,可以打開一個表單的單個實例。意思是如果一個表格尚未打開,它應該創建並顯示新表格,如果已經打開,它應該將現有表格放在前面。單個可重用函數打開表單的一個實例
我用下面的函數,
if (Application.OpenForms["FPSStorageDemo"] == null)
{
FPSStorageDemo fp = new FPSStorageDemo();
fp.Name = "FPSStorageDemo";
fp.Show();
}
else
{
((FPSStorageDemo)Application.OpenForms["FPSStorageDemo"]).BringToFront();
}
但我無論我要打開一個表格,一次又一次編寫代碼。但是我需要一個可以完成這項工作的可重複使用的函數。
我寫了一個函數一樣,
void OpenSingleInstanceForm(Type TypeOfControlToOpen)
{
bool IsFormOpen = false;
foreach (Form fm in Application.OpenForms)
{
if (fm.GetType() == TypeOfControlToOpen)
{
IsFormOpen = true;
fm.BringToFront();
break;
}
}
if (!IsFormOpen)
{
Object obj = Activator.CreateInstance(TypeOfControlToOpen);
//obj.Show(); //Here is the problem
}
}
但在最後,我不知道如何來顯示新的表單實例。任何人都可以建議如何做到這一點?這是錯誤的還是有另一種方式來做到這一點?
在此先感謝。
讓它工作。 ((表格)OBJ).Show();這解決了我的問題 – Matt