Modifier un controle depuis un thread

5/5 (4 avis)

Vue 9 309 fois - Téléchargée 561 fois

Description

J'ai vu le code proposé par bestouinouin pour modifier une propriété d'un controle depuis un thread : je popose ici une adaptation de cette idée qui permet de le rendre beaucoup plus générique. Ce n'est sans doute pas complet, mais on peut mettre à jour les propriétés et on peut aussi accéder à la méthode Add (pour la propriété Items ou Controls).

Conclusion :


L'utilisation de la classe se fait en 2 temps :
1) Déclaration d'une instance :
Thread_Control monCtrl = new Thread_Control();

2) Appel de la méthode UpdatreProperty() :
monCtrl.UpdatreProperty(Nom_du_Form, Nom_du_Control, Nom_de_la_propriété, Valeur_souhaitée, true); /* true ou false */

Prototype de la méthode :
/// <summary> Fonction de mise à jour d'une propriété d'un controle en asynchrone (attention à la casse dans les noms). </summary>
/// <param name="FormName"> Nom du formulaire. </param>
/// <param name="controlName"> Nom du controle modifié. </param>
/// <param name="PropertyName"> Nom de la propriété. </param>
/// <param name="TxtValue"> Valeur souhaitée. </param>
/// <param name="Force"> Permet la mise à jour du controle même si celui-ci n'est pas "enabled". </param>
public void UpdatreProperty(string FormName, string controlName, string PropertyName, object TxtValue, bool Force)

Codes Sources

A voir également

Ajouter un commentaire Commentaires
cs_zwei Messages postés 16 Date d'inscription mercredi 24 mai 2006 Statut Membre Dernière intervention 21 février 2009
21 févr. 2009 à 16:59
Je retire mon précédent commentaire, ça marche bien, c'est moi qui utilisait mal la méthode Invoke.

Il faut cependant récupérer la méthode par baseType car AppendText fait partie de TextBoxBase et non richTextBox.
cs_zwei Messages postés 16 Date d'inscription mercredi 24 mai 2006 Statut Membre Dernière intervention 21 février 2009
21 févr. 2009 à 12:07
Très bonne source.

Cependant ne marche pas si j'ai un RichTextBox et que je veux appeler la méthode AppendText(string);

une idée ?
bestouinouin Messages postés 18 Date d'inscription mercredi 13 août 2003 Statut Membre Dernière intervention 4 janvier 2007
29 nov. 2006 à 16:19
Très bon travail. Je ne comprend pas tout mais tu as poussé la chose assez loin. bravo ...
yann_lo_san Messages postés 1137 Date d'inscription lundi 17 novembre 2003 Statut Membre Dernière intervention 23 janvier 2016 24
23 avril 2006 à 18:44
Super !
J'avais justement demandé un éclaircissement sur ce sujet dans un source que j'avais déposé (Simple_batch, catégorie Application), concernant l'analyse de coloration d'un control rtf par un thread. Comme quoi tout vient à point à qui sait attendre.
Indirectement, merci à toi. (je te mets 9/10)

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.