Est-ce que quelqu'un sait comment savoir si l'application Windows Form (C#) est ouverte ou si le client l'a fermée?
(Dans mon application, j'ai une application Windows Form (Form1) qui permet à l'utilisateur d'ouvrir un autre formulaire (Form2) Je veux savoir si le Form2 est ouvert ou fermé.)
Je dois savoir que parce que je cours le Form2 à partir d'un thread, et je veux faire tourner le thread jusqu'à ce que l'utilisateur ferme Form2.
Merci beaucoup!Comment savoir si l'application de formulaire est ouverte ou non C#
Répondre
Vous avez besoin d'élaborer un peu plus sur votre question. Parlez-vous de la surveillance de l'application à partir d'une autre application? Ou qu'une forme doit savoir si une autre est ouverte? Ou un formulaire a besoin de savoir quand une autre forme se ferme?
Il existe plusieurs façons de surveiller la fermeture de formulaires dans la même application.
Appel ShowDialog()
sur votre formulaire au lieu de Show()
veillera à ce que le code suivant l'appel ShowDialog()
ne soit pas exécuté jusqu'à ce que l'utilisateur ferme la forme.
La classe Form possède une propriété Visible
qui renvoie true/false selon que le formulaire est visible ou non. En ce qui concerne l'application elle-même, un événement ApplicationExit
sur la classe Application
statique est appelé juste avant la fermeture de l'application afin que vous puissiez l'écouter si, par exemple, vous devez effectuer un nettoyage à la sortie .
Si vous souhaitez exécuter une seule instance d'application, vérifiez le lien this.
Vous verrez également comment vérifier si un processus est toujours actif.
Vous pouvez vérifier si une forme d'un type donné est ouvert dans votre application comme celui-ci (LINQ):
if (Application.OpenForms.OfType<Form2>().Count() > 0)
{
// there is an instance of Form2 loaded
}
Si vous voulez dire l'application MDI avec ses formes enfants:
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;
}
cela créera le formulaire enfant s'il n'a pas encore été créé et l'activera s'il a été créé.
échantillon: ActivateForm<dlgChildOne>();
-1: cette fonctionnalité est intégrée à WinForms. Voir la collection Application.OpenForms: http://msdn.microsoft.com/en-us/library/system.windows.forms.application.openforms.aspx – Juliet
@juliet Que voulez-vous dire? C'est à propos de Application.OpenForms ... –
- 1. comment savoir si la fenêtre est ouverte - PHP/Javascript?
- 2. Comment savoir si une certaine forme est ouverte?
- 3. Comment savoir si TextArea est Focused ou non GWT
- 4. Comment savoir si le fichier .pem est correct ou non
- 5. Comment savoir si un contenu iframe est vide ou non?
- 6. Comment savoir si la valeur est définie ou non
- 7. Comment savoir si un multiprocessing.Lock Python est publié ou non?
- 8. MySql: Comment savoir si une entrée est compressée ou non
- 9. comment savoir si Facebook est encore connecté ou non?
- 10. Comment savoir si l'applet ou l'application est
- 11. jquery savoir si l'utilisateur tape ou non
- 12. est-il possible de savoir si un dijit est affiché ou non?
- 13. comment savoir si l'utilisateur est complètement connecté ou pas?
- 14. comment savoir si le disque est basique ou dynamique?
- 15. Comment savoir si un formulaire est en mode aide?
- 16. Comment savoir si le fichier de base de données sqlite est valide ou non
- 17. Comment savoir si l'objet raphael est caché?
- 18. Comment savoir (runtime) si un type dans t-sql est de longueur fixe ou non?
- 19. Facebook API: Comment laisser le php savoir si l'utilisateur est un fan de l'application ou non?
- 20. Comment savoir si la vue de liste est active ou non?
- 21. Puis-je savoir si un DbCommand ado.net est une requête ou non (avant de l'exécuter)
- 22. Comment savoir si un rafraîchissement est venu d'une minuterie (C#)
- 23. Comment savoir si NSUserDefaults est déjà enregistré?
- 24. si l'utilisateur est déjà connecté ou non?
- 25. Comment savoir si la fonction est accessible à partir d'un formulaire ou d'un appel API
- 26. Comment savoir si SQL Server est local ou distant?
- 27. Comment savoir si un assemblage est privé ou public
- 28. Comment savoir si une classe particulière est accessible ou non par JVM?
- 29. Android: comment puis-je savoir si le clavier virtuel est affiché ou non?
- 30. new Image(), comment savoir si l'image est chargée à 100% ou non?
déterminer que dans la même machine? – thelost
Vous cherchez un événement à la fin de l'application? – Codesleuth