4
A
回答
5
你可以這樣做。
創建靜態方法:
public static Form IsFormAlreadyOpen(Type FormType)
{
foreach (Form OpenForm in System.Windows.Forms.Application.OpenForms)
{
if (OpenForm.GetType() == FormType)
return OpenForm;
}
return null;
}
然後當你創建你的孩子形式。
frmMyChildForm frmChild1;
if ((frmChild1 = (frmMyChildForm)IsFormAlreadyOpen(typeof(frmMyChildForm))) == null)
{ //Form isn't open so create one
frmChild1= new frmMyChildForm();
}
else
{ // Form is already open so bring it to the front
frmChild1.BringToFront();
}
-1
您可以使用單例模式方法,並讓表單有一個實例成員變量來跟蹤它是否已被初始化。
0
也許這樣的事情可以幫助你
Form frmToCreate;
String strClassName=typeof(FormToCreate).Name
frmToCreate = GetForm(strClass);
if(frmToCreate == null)
{
//create the form here
}
frmToCreate.MdiParent = this; //supposing you are inside of the mainwindow (MDI window)
frmToCreate.Visible = true;
//other code goes here
其中GetForm會是這樣的
public Form GetForm(String type)
{
int i;
Form[] children = this.MdiChildren; //or mdiwindow.MdiChildren
for (i = 0; i < children.Length; i++)
{
if (children[i].GetType().Name == type)
{
return children[i];
}
}
return null;
}
如果只是在使用MdiChildren
物業打的事情。
相關問題
- 1. 關閉MFC MDI應用程序中的所有子窗口
- 2. 在MFC MDI應用程序中級聯特定的窗口
- 3. 在flex應用程序中在MDI窗口上渲染iframe
- 4. Mdi子窗體單實例
- 5. C#窗口應用程序中的帶寬限制
- 6. 在C#窗口應用程序中控制用戶權限
- 7. 帶窗口管理的MDI應用程序
- 8. 在MDI應用程序的父窗體中心打開模態窗口
- 9. 如何在Web應用程序中限制窗口短鍵
- 10. 僅限Chrome應用程序窗口
- 11. c#2008示例窗口應用程序
- 12. 通過NSRunningApplication實例獲取應用程序的主窗口
- 13. 如何限制UWP應用程序的窗口大小調整
- 14. 如何在我的應用程序的MDI窗口中顯示另一個進程的窗口
- 15. 獲取主窗口控制器的實例在應用程序委託
- 16. 基於窗口的應用程序中的數據庫實現
- 17. 在Delphi Mdi應用程序的父窗口中使用KeyDown事件
- 18. 單實例應用程序 - 激活窗口 - 可可
- 19. VB.Net WPF單實例應用程序,第一個新實例打開窗口
- 20. 在MDI winform中級聯的窗口數
- 21. 如何限制EJB實例的數量?
- 22. Symfony命令實例的限制數量
- 23. 請求權限窗口強制應用程序停止
- 24. Adobe Air桌面應用程序限制窗口大小
- 25. 限制應用程序的多個實例
- 26. 將silverlight應用程序的實例限制爲一個
- 27. 強制窗口交換應用程序
- 28. 如何使用MouseWheel在Winforms應用程序中滾動MDI父窗口
- 29. 如何從MDI子窗體(MDI應用程序)打開窗體對話框
- 30. 隱藏Windows窗體應用程序中的控制檯窗口
你將如何在c#/ winform代碼中應用這種模式來滿足作者的需求? – 2010-11-13 16:25:51
如果要求只有一個實例在任何時候打開,並且如果沒有打開任何一個實例,則打開一個新實例,但這樣做會工作得很好 - 實際上我自己也是這樣做的。 – SilverSkin 2010-11-18 13:02:51