begin process at 2010 02 10 06:20:15
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C#

 > 

Windows

 > 

Formulaire / Winforms / Controls

 > 

Update de l'UI


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Update de l'UI

lundi 8 décembre 2008 à 13:08:07 | Update de l'UI

terranigma

Bonjour à tous,

Mon problème est le suivant : pour exploser les choses clairement on va dire que j'ai une classe "worker" d'un côté et l'UI de l'autre. J'aimerais savoir quelle est le meilleur moyen pour mettre à jour l'interface graphique de la fenêtre principal. J'ai un toolStrip qui contient une progressBar que je souhaiterais faire évoluer en fonction de la tâche et un label qui affiche la tâche courrante.
J'ai bien essayé diverses méthodes d'amateurs et de bidouilleurs qui sont plus ou moins efficace mais j'aimerais savoir le meilleur moyen de mettre à jour l'UI en fonction de ce que fait une tâche.

Merci d'avance à tous ceux qui me proposeront quelque chose!
lundi 8 décembre 2008 à 13:30:18 | Re : Update de l'UI

billou_13

Membre Club
Bonjour,

Un petit tuto très bien fait pour résoudre ce problème (merci MorpionMx):
http://www.csharpfr.com/tutoriaux/CSHARP-OPERATIONS-CROSS-THREADS-UTILISATION-DELEGATIONS-SYNCHRONES-ASYNCHRONES_174.aspx

Bonne journée,

Billou_13
Bask En Force

--------------------------------------------------------------------
Connaître la réponse est une chose, savoir pourquoi en est une autre
---------------------
lundi 8 décembre 2008 à 13:31:21 | Re : Update de l'UI

billou_13

Membre Club
J'ai oublié l'exemple avec le progressbar (merci encore MorpionMx):
http://www.csharpfr.com/code.aspx?ID=40294

Billou_13
Bask En Force

--------------------------------------------------------------------
Connaître la réponse est une chose, savoir pourquoi en est une autre
---------------------
lundi 8 décembre 2008 à 14:57:24 | Re : Update de l'UI

terranigma

Merci pour la rapidité de la réponse Billou!
Je suis encore en train d'étudier le tuto pour l'instant mais j'ai regardé l'autre exemple avec la progressBar et celà ne correspond pas car je suis dans un classe et je n'ai pas accès à this.BeginInvoke()
lundi 8 décembre 2008 à 15:16:53 | Re : Update de l'UI

billou_13

Membre Club
Tout a fait.

Mais il ne faut pas que tu gère ta progressbar dans un classe à part.
Il faut que ce soit ta Form (ou UserControl) qui mette à jour la progressbar. Par conséquent, elle aura accès à this.BeginInvoke(..).

Tu vas me dire pourquoi ?
Parce que ta classe qui fait le traitement devient dépendante d'une interface; et ça, c'est pas bien :)

Une solution consiste donc à faire une classe traitement qui lance des événements (exemple, un event pour le début de traitement, 1 pr la fin, 1 pour chaque fin de fichiers traités...).
Ensuite, tu pourras alors binder ce que tu veux dessus: une console, une form, un usercontrol, un service windows etc...
Il te suffira alors d'appeler la classe et de t'abonner à ces événements. Chauqe événement fera des choses différents suivants le type de l'objet qui s'abonne aux événements.


Ou sinon, si tu veux pas batailler (même si je pense que ce serait une très bonne solution), tu donnes à ta classe l'objet Form et cette dernière n'aura plus qu'à appeler des méthodes pour mettre à jour ton progressbar.


Voila tout,

Billou_13
Bask En Force

--------------------------------------------------------------------
Connaître la réponse est une chose, savoir pourquoi en est une autre
---------------------
lundi 8 décembre 2008 à 16:27:54 | Re : Update de l'UI

terranigma

hmmm :) la première solution semble propre et c'est vrai que j'aimerais bien mettre ça en place histoire d'être tranquille une fois pour toute et pouvoir la réutiliser par la suite. Ca semble cela dit au delà des mes compétences actuelles, aurait-tu par hasard un exemple ou vu une source qui utilise ton concept de classe traitement avec un bind et des évenements?
lundi 8 décembre 2008 à 17:07:30 | Re : Update de l'UI

billou_13

Membre Club
Réponse acceptée !
Bonsoir,

On va peut-être me trouver chauvin mais c'est pas grave ^^
Regardes un peu du côté de cette source: http://www.csharpfr.com/codes/LOGICIEL-RECHERCHE-REMPLACEMENT-DANS-REPERTOIRE-SOUS-REPERTOIRES_39713.aspx
Il y a tout ce dont je parlais.

Peut-être (même très certainement) y-t-il d'autres sources sur le site codes-sources mais je n'ai pas les noms sur le coup.

Bonne soirée,

Billou_13
Bask En Force

--------------------------------------------------------------------
Connaître la réponse est une chose, savoir pourquoi en est une autre
---------------------
lundi 8 décembre 2008 à 17:16:36 | Re : Update de l'UI

terranigma

Je viens de trouver ça en attendant après avoir interrogé google http://forums.whirlpool.net.au/forum-replies-archive.cfm/219650.html j'ai fais un test ça marche plutôt bien! Je pense qu'il s'agit de la méthode que tu m'as conseillé.
Je vais m'intéresser aussi à ton lien vu que c'est pour du traitement de fichiers.

lundi 8 décembre 2008 à 17:35:01 | Re : Update de l'UI

terranigma

Très bon lien Billou, problème résolu!
Bonne soirée à toi aussi!


Cette discussion est classée dans : moyen, ui, tâche, update, meilleur


Répondre à ce message

Sujets en rapport avec ce message

Update d'un DataGrid [ par jdaviaud ] Bonjour à tous, j'ai encore un pb avec mon DataGrid, enfin c toujours le meme pb, mais je vais essayer d'etre plus clair puisque mon autre question n' Quel est le meilleur moyen de gerer un buffer ... [ par Hawkmoon ] Bon voila mon probleme : je connecte une socket sur un server irc mais avec le code suivant j'arrive pas a gerer les reponses du server dans un buffer Accéder à la corbeille [ par torak ] salut à tous!J'aimerais savoir s'il y a un moyen d'accéder aux fichiers qui se trouvent dans la corbeille de Windows, et plus généralement s'il y a un ListBox et infos cachées [ par Coyote78 ] bonjour,je recherche le moyen de remplir un composant listebox avec des donnees issues d'une requete SQL du genre "SELECT ID_User, Nom_User FROM Users s'il vous plait de l'aide: update [ par creanova2000 ] bonjour,j'ai une connection SQL : myconnectionune data adapter : myadapterun dataset " ds1 qui comporte une table de nom client.la table client de ds1 meilleur livre [ par oboudou ] Je cherche un livre de référence, je cherche le meilleur :-)Je voudrais aussi pouvoir touver, dans ce livre, toutes les informations concernant les se UPDATE avec Access [ par Tommy666 ] Salut,Je n'arrive pas à faire un UPDATE sur C#.Net !!! Si quelqu'un a une idée... elle est la bienvenue !Je fais dans ce style :sQuery = "UPDATE TblPe Problème avec l'update d'un datagrid dans une winform [ par julien67 ] Salut à tous !J'ai un problème pour faire un update sur ma base de données via un datagrid...au démarrage de la winform, le datagrid affiche bien les Application en tâche de fond [ par SharpMao ] Hello à vous tous et bonne année,Juste une petite question, j'aimerais faire une application windows qui sous sa forme réduite, se trouverait sous la RichTextBox & ses Scrolls [ par coq ] G beau avoir chercher je ne trouve pasMais bon G peut etre rater qqch alors je pose la question : y a t'il un moyen de controler les scrollbars d'un R


Nos sponsors


Sondage...

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,811 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales