有誰知道我怎麼知道Windows窗體應用程序(C#)是否打開或客戶機關閉了它?我想知道Form2是打開還是關閉。)
我需要知道,因爲我運行了一個窗體應用程序(Form1),允許用戶打開另一個窗體(窗體2)。從一個線程的Form2,我想讓線程runnig直到用戶關閉Form2。
非常感謝!如何知道表單應用程序是否打開c#
回答
你需要詳細闡述你的問題。你在談論從另一個應用程序監視應用程序嗎?或者一種形式需要知道另一種形式是否開放?或者一個表單需要知道另一個表單何時關閉?
有幾種方法可以監視在同一個應用程序中關閉的表單。
呼喚你的形式,而不是Show()
上ShowDialog()
將確保遵循ShowDialog()
調用代碼沒有得到執行直到用戶關閉形式。
Form類具有Visible
屬性,該屬性根據表單是否可見返回true/false。
至於應用程序本身,有一個ApplicationExit
事件上的靜態Application
類被離應用程序之前調用關閉,所以如果,例如,你需要在退出時執行一些清理工作,你可以聽那個事件。
如果您只想運行單個應用程序實例,請檢查this鏈接。
在那裏您還會看到如何檢查進程是否仍處於活動狀態。
您可以檢查一個給定類型的形式是在應用程序中所示(使用LINQ)開放:
if (Application.OpenForms.OfType<Form2>().Count() > 0)
{
// there is an instance of Form2 loaded
}
如果你的意思是其子窗體MDI應用程序:
private Dictionary<Type, Form> SingleInstanceForms = new Dictionary<Type, Form>();
public Form ActivateForm<T>() where T : Form, new()
{
Cursor.Current = Cursors.WaitCursor;
if (!this.SingleInstanceForms.ContainsKey(typeof(T)))
{
T newForm = new T();
//setup child
newForm.MdiParent = this;
newForm.WindowState = FormWindowState.Maximized;
//newForm.Icon = Icon;
newForm.FormClosed += new FormClosedEventHandler(delegate(object sender, FormClosedEventArgs e)
{
this.SingleInstanceForms.Remove(sender.GetType());
});
this.SingleInstanceForms.Add(typeof(T), newForm);
newForm.Show();
this.Refresh();
}
Form formToActivate = this.SingleInstanceForms[typeof(T)];
formToActivate.Activate();
Cursor.Current = Cursors.Default;
return formToActivate;
}
這將創建表單子,如果尚未創建,並且在創建時激活它。
示例:ActivateForm<dlgChildOne>();
-1:此功能內置於WinForms。請參閱Application.OpenForms集合:http://msdn.microsoft.com/en-us/library/system.windows.forms.application.openforms.aspx – Juliet 2010-03-18 13:18:38
@juliet你是什麼意思?這是關於Application.OpenForms ... – 2010-03-18 16:59:22
- 1. 如何知道用戶是否已打開通知列表?
- 2. 如何知道iOS是否打開wifi?
- 3. 如何知道MFC應用程序是否在卸載時打開
- 4. 如何知道進程是否是應用程序 - Windows
- 5. 如何知道是否通過表單打開的單詞文檔已成功在c中打開#
- 6. 如何知道哪個應用程序被打開?
- 7. iphone:如何知道從後臺打開的應用程序
- 8. 如何知道應用程序池是否已遠程啓動?
- 9. Facebook - 如何知道用戶是否使用應用程序?
- 10. 如何知道用戶是否強制退出應用程序?
- 11. 如何知道Android應用程序是否被禁用ICS
- 12. 如何知道Android應用程序是否爲混合應用程序?
- 13. C# - 如何打開Excel應用程序?
- 14. 如何知道點擊通知後是否打開了活動?
- 15. 如何知道應用程序在後臺被殺後是否已從本地通知中打開?
- 16. 如何知道應用程序是否在iOS終止?
- 17. 如何知道我的應用程序管理員是否
- 18. Android:如何知道應用程序是否可以啓動
- 19. 如何知道是否Applet或應用程序
- 20. Android,我如何知道應用程序是否已關閉
- 21. 如何知道Android應用程序是否被重新部署?
- 22. 如何知道應用程序池內存是否足夠?
- 23. 如何知道手機應用程序是否關閉
- 24. 如何知道應用程序是否在前臺?
- 25. 檢查應用程序是否從推送通知中打開
- 26. 如何知道訪客用戶是否正在運行應用程序 - c#?
- 27. 如何知道使用python打開的應用程序何時關閉?
- 28. Android:如何知道通知面板是否已經以編程方式打開?
- 29. iOS:用UIDocumentInteractionController打開文件,並知道應用程序打開文件
- 30. 如何知道使用asp.net是否打開或關閉兼容性(c#)
確定在同一臺機器內? – thelost 2010-03-18 11:16:16
您是否在申請結束時查找活動? – Codesleuth 2010-03-18 11:16:35