有谁知道我怎么知道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. 如何知道iOS是否打开wifi?
- 2. iphone:如何知道从后台打开的应用程序
- 3. 如何知道哪个应用程序被打开?
- 4. 如何知道用户是否强制退出应用程序?
- 5. 如何知道Android应用程序是否被禁用ICS
- 6. 如何知道Android应用程序是否为混合应用程序?
- 7. 如何知道应用程序在后台被杀后是否已从本地通知中打开?
- 8. C# - 如何打开Excel应用程序?
- 9. 如何知道应用程序是否在iOS终止?
- 10. 如何知道应用程序是否在前台?
- 11. 如何知道手机应用程序是否关闭
- 12. 如何知道是否Applet或应用程序
- 13. 检查应用程序是否从推送通知中打开
- 14. 如何知道访客用户是否正在运行应用程序 - c#?
- 15. 如何知道使用python打开的应用程序何时关闭?
- 16. 如何知道使用asp.net是否打开或关闭兼容性(c#)
- 17. 如何知道是否为android中的应用程序启用通知?
- 18. Windows如何知道用哪个程序打开文件?
- 19. 如何知道什么时候用javascript打开程序?
- 20. 如何知道应用程序数据是否被清除或应用程序是否被卸载?
- 21. Iphone应用程序,打开YouTube频道
- 22. 如何知道图像文件是否打开
- 23. 如何知道WPF窗口是否打开
- 24. 如何才能知道在MySQL中是否有事务打开?
- 25. 如何知道Linux系统中的端口是否打开
- 26. 如何知道ajax模式弹出窗口是否打开?
- 27. 如何知道窗口是否打开 - PHP/Javascript?
- 28. 如何知道网页是否已在Jenkins中打开?
- 29. 的android:如何知道应用是否被另一个应用程序称为
- 30. 如何知道表是否是数组?
确定在同一台机器内? – thelost 2010-03-18 11:16:16
您是否在申请结束时查找活动? – Codesleuth 2010-03-18 11:16:35