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 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.
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
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
UNE JOLIE-HORLOGE ET PAS QU'UN PEU !UNE JOLIE-HORLOGE ET PAS QU'UN PEU ! par neodante
Pour les possesseurs d'iPhone, ça y est Bijin Tokei - qui se traduit littéralement en Français par " Jolie Horloge " - est arrivé et GRATUITEMENT s'il vous plaît ! Après la version Tokyo, Hokkaido, night club, racing, Gal, "pour les mademoiselles'", . voi...
Cliquez pour lire la suite de l'article par neodante TECHDAYS PARIS 2010 : CONNECTEZ VOS DONNéES à SHAREPOINT 2010 AVEC LES BUSINESS CONNECTIVITY SERVICESTECHDAYS PARIS 2010 : CONNECTEZ VOS DONNéES à SHAREPOINT 2010 AVEC LES BUSINESS CONNECTIVITY SERVICES par ROMELARD Fabrice
Animé par: Gaetan Bouveret et Julien Chomarat Business Connectivity Services (BCS) est dans SharePoint 2010 la version 2 de Business Data Catalog (BDC dans SharePoint 2007). Il s'agit de la solution permettant de visualiser des données provenan...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice [DIVERS] SUIVRE VOS SéRIES PRéFéRéS SUR LA TOILE[DIVERS] SUIVRE VOS SéRIES PRéFéRéS SUR LA TOILE par orion
Comme de nombreux geek, je suis un grand amateur de série TV et je rate régulièrement des épisodes de mes séries préférés. Une solution s'offre à vous avec ce merveilleux site : Tv Gorge - www.tvgorge.com Moteur de recherche à l'appui, vous pouvez ...
Cliquez pour lire la suite de l'article par orion TECHDAYS PARIS 2010 : LA BI DANS SHAREPOINT 2010TECHDAYS PARIS 2010 : LA BI DANS SHAREPOINT 2010 par ROMELARD Fabrice
Animé par: Vincent Bellet et Baptiste Giraudier La BI dans SharePoint 2010, Les nouveaux services d'application dans SP2010 et SQL Server Reporting services 2008 R2. La BI dans SharePoint est généralisée pour tous afin de permettre à tous les coll...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Logiciels
DB-MAIN (9.1.0)DB-MAIN (9.1.0)DB-MAIN is a data-modeling and data-architecture tool. It is designed to help developers and anal... Cliquez pour télécharger DB-MAIN Xilisoft DPG Convertisseur (5.1.37.0120)XILISOFT DPG CONVERTISSEUR (5.1.37.0120)Xilisoft DPG Convertisseur offre aux fans de Nintendo DS une bonne solution leur permettant de dé... Cliquez pour télécharger Xilisoft DPG Convertisseur GraphicsGale (2.01.01)GRAPHICSGALE (2.01.01)GraphicsGale est un logiciel de PixelArt avec de nombreuse fonctionnalités permettant de réalisé ... Cliquez pour télécharger GraphicsGale Architecte 3D (Platinum 2010)ARCHITECTE 3D (PLATINUM 2010)Architecte 3D Platinium vous permet de concevoir facilement les plans votre future maison, de l'é... Cliquez pour télécharger Architecte 3D TeamViewer 5 (TeamViewer 5)TEAMVIEWER 5 (TEAMVIEWER 5)Dépanner un ami,expliquer une manipulation devient un jeu d'enfant.
Prise en main d'un autre ord... Cliquez pour télécharger TeamViewer 5
Comparez les prix

HTC Magic
Entre 429€ et 429€
|