Accueil > Forum > > > > Focus sur un Formulaire créé dans un Thread
Focus sur un Formulaire créé dans un Thread
mercredi 26 avril 2006 à 08:29:07 |
Focus sur un Formulaire créé dans un Thread

AlexBob789
|
Salut à tous.
Encore une fois de plus parmis vous. Voilà j'ai une application cliente/server, et quand j'envoie une requette au serveur le temps de traitements peux aller jusqu'à 10, 15 secondes, alors pour aviser l'usager par un message que le traitement de la requette est en cours je veux affciher un formulaire(popup). Je ne peux pas faire de showmodal directement de mon formulaire(frmPatienter) car cela bloquera le traiment car je me trouve dans le meme process que celui de l envoie de la requete au serveur. Alors je me suis créé mon frmPatienter dans un autre process:
............................ ThreadStart monThread = new ThreadStart(ThreadPatienter); Thread thread = new Thread(monThread ); thread.Start();
................. /////////////////
public static void ThreadPatienter() { if (myWaitList.Count==0) { frmPatienter maFrmPatienter = new frmPatienter (); maFrmPatienter .ShowDialog(); } Cette section marche bien, le seul problème est que mon formulaire maFrmPatienter étant d'une dimmension plus petite que le formulaire parent , l usager peut faire un clic sur les bouttons du formulaire parent et je veux éviter cela. Je ne sais s 'il ya un moyen de donner le focus à maFrmPatienter(genre sur la fenêtre windows au complet) de telle sorte que l'usager ne soit pas en mesure de jouer sur le formulaire parent(il peut cliquer sur les bouttons mais que l'evenement ne soit pas pris en compte) ou de selectioner une autre application en veille tant et aussi longtemps que le formulaire maFrmPatienter, ne soit pas fermer.
Groso modo je veux me créer un popup Patienter qui empeche tout clique le formulaire parent, dont ce dernier sera créé dans un thread.
Je vous remercie d'avance. Au plaisir. | | |
BobAlex
|
|
mercredi 26 avril 2006 à 10:20:26 |
Re : Focus sur un Formulaire créé dans un Thread

Nikoui
|
Tu pourrais appeler la méthode Hide() sur ton formulaire parent avant d'appeler ton "pop up" (ca va cacher ton formulaire), puis appeler la méthode Show() lorsque tu veux afficher a nouveau ton formulaire parent.
Une autre facon de faire, c'est de mettre la propriétés Enabled de ton formulaire parent a false - ce qui désactivera tous les controles du formulaire. Ensuite tu remet a true lorsque tu veux rendre ton formulaire réutilisable.
Cela dit, ce que moi je te proposerai plutot, c'est "d'inverser" ta solution : tu lance ta requete dans un autre thread - et ton formulaire patiente (avec un showdialog).
|
|
mercredi 26 avril 2006 à 19:18:35 |
Re : Focus sur un Formulaire créé dans un Thread

Lutinore
|
Salut, pourquoi c'est pas la requête que tu executes dans un autre thread et utiliser une forme modale dans le thread courant ?
|
|
jeudi 27 avril 2006 à 10:15:26 |
Re : Focus sur un Formulaire créé dans un Thread

Nikoui
|
1 - parce que c'est plus logique : "je lance un traitement en fond et j'attend que ca se finisse" = je lance une requete dans un thread et j'attend qu'il ai finit
2 - parce que en lancant le traitement dans ton ihm (dans le thread de ton ihm pour etre précis), tu bloque completement ton IHM - ce qu'il faut eviter au maximum (pour améliorer la fameuse "user experience"). Dans ton cas ca ne change pas grand chose, car tu décide de "bloquer" ton application tant que le traitement n'est pas finis. Par contre si tu avais des animations par exemple, ca "freezerai" tout, tandis qu'en lancant ta requete dans un autre thread, le thread "ihm" est libre pour afficher ce qu'il y a a afficher pendant ce temps (une progress bar ?)
3 - Toujours par rapport au paragraphe précédent, il est préférable de ne pas bloquer l'ihm même pendant l'execution d'une requete (bien sur ce n'est pas toujours le cas). Au contraire, on lance le traitement en tache de fond, et on préviens l'utilisateur lorsque "c'est pret". Un exemple, les mises à jours des logiciels : avant, tu avais la possibilité de vérifier si ton logiciel était a jour (dans certains logiciel...) et si ce n'étais pas le cas, on te proposais un téléchargement : une fenetre de téléchargement s'ouvrait en te montrant la progression... et tu ne pouvais rien faire en attendant. Maintenant, les logiciel récents font la même chose... mais télécharge la mise à jour en background. Tu peux continuer a utiliser l'appli pendant ce temps, puis un joli popup viens te prévenir qu'une mise à jour est prête...
|
|
vendredi 28 avril 2006 à 02:13:01 |
Re : Focus sur un Formulaire créé dans un Thread
|
vendredi 28 avril 2006 à 10:20:39 |
Re : Focus sur un Formulaire créé dans un Thread

Nikoui
|
Ah oui effectivement :) Bah c'est pas grave j'aime bien raconter ma vie !
|
|
vendredi 28 avril 2006 à 15:08:24 |
Re : Focus sur un Formulaire créé dans un Thread

AlexBob789
|
Merci à vous pour vos interventions. Mais bon je suis rendu a 95% de la programmation de mon application et essayer de lancer l'envoie de donnée au serveur dans un autre thread sera de la grosse cuisine pour moi(car je ne suis pas très famillié avec les threads et je suis pris par le temps), alors ce que je compte faire c'est de lancer mon formulaire qui dira"Veuillez patienter" et de trouver un API qui permettra de donner le focus a mon formulaire maFrmPatienter pour eviter que l'evenement des bouttons au clic sur le formulaire principale soit pris en considération, et même enpecher l'accès du taskbar . Selon votre expérience est ce que la fonction SetWindowsPos peut me permettre de resoudre le problème.
J'ai mis false à la proprité enabled du formualire principale, mais cela ne marche pas, car c'est comme apres avoir reçus la reponse du serveur, il tient compte de l'évement généré lors du click sur le boutton qd le formulaire était enabled = false. Même problème quand j'essaie de le faire sur les boutton mettre enabled à false.
| | | BobAlex
|
|
Cette discussion est classée dans : formulaire, thread, créé, mafrmpatienter, frmpatienter
Répondre à ce message
Sujets en rapport avec ce message
Récupérer mes données [ par Sev1975 ]
Je crée un formulaire à l'aide de l'assistant, je récupère une table contenant des données par un dataset créé auparavant. A l'execution de mon formul
Problème de thread, socket et form [ par Florynth ]
Bon pas très compliqué,j'ai créé un thread qui écoute un portaprès je pèse sur un bouton qui fait connectédonc il créé un socket le connect au port en
Thread [ par catamenia ]
bonjours,J'ai un thread qui tourne afin de récupérer des informations sur un serveur.Quand l'information souhaitée arrive, je crée un nouveau formulai
thread [ par Moomoon07 ]
Salut !Je connais un peu les thread, qui permettent de démarrer plusieurs processus en même temps, s'executant alternativement, qui peuvent s'attendre
Thread qui créé des fenêtes [ par bubbathemaster ]
Bonjour,J'ai un thread qui créé des fenêtres. Ces fenêtes sont ajoutées dans une liste de forms pour que je garde trace de leur créations. Le truc c'e
thread d'un form [ par trdev ]
bonjourje commence à regarder les threads et j'ai des questions :si j'ai bien compris chaque formulaire est un thread particulier ... ou je me trompe.
Choix dans quel processeur va s'exécuter un thread [ par jdek ]
Bonjour,Voila, j'ai un formulaire qui lance sur demande un thread qui exécute des calculs.Le problème c'est que ces calculs sont assez longs, 15 s, et
Retour donnés Formulaire [ par Jleherpeur ]
Bonjour à tous,je souhaiterais créer un control qui me permet de demander a l'utilisateur de saisir un nombre via des boutons(écran tactile).Pour cela
folderbrowserdialog [ par verbeyst ]
je voudrais placer un "folderBrowserDialog" dans(sur) un formulaire, plus précisément dans une moitiéde mon formulaire. Sans doute faudrait-il le plac
Remplir formulaire internet explorer en C# [ par bandifull ]
Bonjour à tous,Je souhaite creer un petit programme qui me permettrait d'ouvrir IE à une page précise, puis de remplir un champ contenu dans un formul
Livres en rapport
|
Derniers Blogs
WORKFLOW FOUNDATION 3 A UN PIED DANS LA TOMBEWORKFLOW FOUNDATION 3 A UN PIED DANS LA TOMBE par JeremyJeanson
Depuis déjà un an, je conseille vivement les utilisateurs de Workflow Foundation 3 à migrer vers la version 4. L'information qui va suivre ne devrait donc pas trop prendre au dépourvu les personnes qui l'ont sagement suivi. Je profite de ce poste pour fai...
Cliquez pour lire la suite de l'article par JeremyJeanson TECHDAYS PARIS 2012 : NOUVELLES TENDANCES DU POSTE DE TRAVAIL - BRING YOUR OWN PCTECHDAYS PARIS 2012 : NOUVELLES TENDANCES DU POSTE DE TRAVAIL - BRING YOUR OWN PC par ROMELARD Fabrice
Speakers: Thierry Rapatout, Antoine Petit et Xavier Trebbia Cette session entre dans le cadre des RDV Décideurs des TechDays 2012, elle est liée à la consumérisation de l'IT et la mise en place du "DeskTop as a Service" dans de plus en ...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice TECHDAYS PARIS 2012 : SYSTEM CENTER SERVICE MANAGER 2012 VUE D'ENSEMBLETECHDAYS PARIS 2012 : SYSTEM CENTER SERVICE MANAGER 2012 VUE D'ENSEMBLE par ROMELARD Fabrice
Speakers: Julien Marechal, Gautier Confiant, Sébastien MEYER La session débute par le positionnement de la solution System Center par rapport aux concepts d'organisation ITIL. Le portail du catalogue de se...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice TECHDAYS PARIS 2012 : PLEINIèRE SECOND JOURTECHDAYS PARIS 2012 : PLEINIèRE SECOND JOUR par ROMELARD Fabrice
Après une première journée dédiée aux développeurs, cette seconde journée est dédiée au monde des entreprises et de ses applications. Ainsi, cette pleinière est dédiée à faire un 360 de l'évolution des applications Business aux demandes ac...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice TECHDAYS PARIS 2012 : RETOUR D'EXPéRIENCE SUR LA MISE EN PLACE D'UN CLOUD PRIVéTECHDAYS PARIS 2012 : RETOUR D'EXPéRIENCE SUR LA MISE EN PLACE D'UN CLOUD PRIVé par ROMELARD Fabrice
Speaker : Guillaume Rochette Cette session est dédiée à fournir le retour sur la mise en place d'un cloud privé (IaaS) par Osiatis pour son compte ou celui de ses clients. Ce projet s'est déroulé sur 4 mois et a permis de faire évoluer...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Logiciels
Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning COLLECTOR PLUS (3.00B)COLLECTOR PLUS (3.00B)COLLECTOR PLUS version 3.00B est un logiciel utilisant une base de données alimentée par :
- L... Cliquez pour télécharger COLLECTOR PLUS PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO LettresFaciles 2011 (8.0.0.1)LETTRESFACILES 2011 (8.0.0.1)LettresFaciles est un logiciel facilitant la création et la rédaction de lettres types.
Son inte... Cliquez pour télécharger LettresFaciles 2011
|