Comment avoir une seule tâche pour toutes mes fenêtres?

Résolu
churrros Messages postés 19 Date d'inscription mardi 26 juin 2007 Statut Membre Dernière intervention 9 avril 2008 - 19 juil. 2007 à 14:33
churrros Messages postés 19 Date d'inscription mardi 26 juin 2007 Statut Membre Dernière intervention 9 avril 2008 - 23 juil. 2007 à 21:01
Bonjour,

Lorsque j'ouvre une Form2 depuis une Form1 je procède ainsi :

Form2 InstanceForm2 = new Form2();
InstanceForm2.ShowDialog();

Donc je créé une instance que j'affiche ensuite.

Lorsque j'ouvre le gestionnaire des tâches je constate que j'ai une tâche par fenêtre (ou instance), ce qui me déplaît légèrement. Comment dois-je faire pour que toute les fenêtres ouvertes à partir d'une instance "Main" appartiennent à la même tâche? Pourquoi ces tâches ne prennnent-elles pas le nom de mon fichier compilé en exe?

4 réponses

cs_Yxion Messages postés 219 Date d'inscription jeudi 6 juillet 2006 Statut Membre Dernière intervention 7 septembre 2009
20 juil. 2007 à 17:18
Tu n'as bien qu'un seul process.
Par compte, tu as plusieurs fenetres actives.
Pour ne plus voir les fenetres que tu ouvres dans la liste, indique ShowInTaskbar à false.
Resultat, ta fenetre ouverte n'apparait plus dans la barre des taches Windows, et donc plus dans la liste des taches.
3
ShareVB Messages postés 2676 Date d'inscription vendredi 28 juin 2002 Statut Membre Dernière intervention 13 janvier 2016 26
21 juil. 2007 à 21:53
salut,

il ne faut pas confondre "thread", "fenêtre" et "processus"...la liste des taches est, en gros, la liste des fenêtres de la barre des taches...à ne pas confondre avec la liste des processus...un processus peut avoir plusieurs fenêtres...le stathread ne chanegera rien...

mais je ne vois pas pourquoi tu aurais besoin de n'afficher qu'une seule fenêtre par processus dans la liste des tâches...à la limite si tu fais des boites de dialogues modales mais is tu as vraiment plusieurs fenêtres, elles apparaitront dans  la liste des tâches...

ShareVB
3
churrros Messages postés 19 Date d'inscription mardi 26 juin 2007 Statut Membre Dernière intervention 9 avril 2008
19 juil. 2007 à 18:37
Vu le nombre de réponse je commence à douter de la clarté de ma question, alors je la repose en deux fois :

Pourquoi lorsque je lance mon appli avec :

fenetre1 InstanceFenetre1 = new fenetre1();
Application.Run(InstanceFenetre1);

c'est le nom de la fenêtre qui apparaît dans la liste des tâches et pas le nom de mon application?


Et pourquoi lorsque j'affiche d'autres fenêtres avec :

fenetre2 InstanceFenetre2 = new fenetre2();
InstanceFenetre2.ShowDialog();

elle apparaissent dans la liste des tâches comme si c'était des appli indépendante?


Je précise que je travaille sous WinCE 5.0 et que je n'ai pas de "[STAThread]" devant ma méthode "Main". Est-ce que ça a quelquechose à voir?
Je ne peux pas utiliser non plus "Application.Run();" je suis obligé de lancer au moins une fenêtre.


Merci d'avance pour les réponses, et si je n'en ai pas merci de m'en donner la raison...
0
churrros Messages postés 19 Date d'inscription mardi 26 juin 2007 Statut Membre Dernière intervention 9 avril 2008
23 juil. 2007 à 21:01
J'ai cerné mon erreur. J'ai mal observé : la liste des tâches comme son nom l'indique affiche la liste des fenêtres actives et non pas la liste des processus. Les tâches ne prennent donc pas le nom de l'exécutable de mon appli mais le nom des fenêtres.

Je ne cherchais pas à avoir une fenêtre par processus mais une tâche pour toute mes fenêtres. Donc, à moins de créer une fenêtre unique bourré de champs à afficher ou cacher selon mes besoins y'a pas moyen. J'aurais autant de tâches dans la liste que de fenêtres ouvertes, mais qui ne correspondront qu'à un seul processus bien sur.

Merci pour vos réponses.
0
Rejoignez-nous