C# Accès à une winform depuis une methode static [Résolu]

Signaler
Messages postés
20
Date d'inscription
jeudi 14 avril 2005
Statut
Membre
Dernière intervention
18 décembre 2008
-
Messages postés
495
Date d'inscription
dimanche 6 juillet 2003
Statut
Membre
Dernière intervention
9 novembre 2007
-
Bonjour,



Je fais une appli windows en C#, et je voudrais modifier une textbox, à
partir d'une méthode static. Le problème, c'est que je ne trouve pas
comment l'atteindre, quoi que je fasse, le compilateur me jette. Je ne
comprend pas comment accéder à une instance à partir d'une méthode
static... Le problème, c'est que je ne peux pas passer le textbox par
référence parce que cette méthode est un callback...



public static void AcceptCallback(IAsyncResult ar)

{

.....

textBoxLog.Text += "Telnet : Erreur lors du AcceptCallback";

}



Quelqu'un aurait-il une idée pour atteindre ma form à partir d'une méthode statique ?

4 réponses

Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
87
Comment ça une copie ?
Form est une classe, soit un type reference.
Et AsyncState est un object, ça tombe bien :-)
Ce que tu passes c'est une référence à ton Form, donc à partir de là tu peux faire un appel de méthode dans ton instance de form qui va aller modifier le contenu du TextBox.

Cocoricoooooooo !!!!
coq
MVP Visual C#
Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
87
Salut,

IAsyncResult.AsyncState : tu pourrais te servir de ça non ?

Cocoricoooooooo !!!!
coq
MVP Visual C#
Messages postés
20
Date d'inscription
jeudi 14 avril 2005
Statut
Membre
Dernière intervention
18 décembre 2008

Merci Coq de ta réponse, je peux effectivement m'envoyer une copie de
ma Form, mais ça m'aide pas pour la modifier... Il me faudrait soit
atteindre l'originale, soit envoyer une référence, et ça j'y arrive pas
...
Messages postés
495
Date d'inscription
dimanche 6 juillet 2003
Statut
Membre
Dernière intervention
9 novembre 2007
1
ouais, tu peux aussi faire du barbare et passer ton TextBox, et ensuite faire ca :

((TextBox)IAsyncResult.AsyncState).Text = "blabla";

ton TextBox est un objet, donc ce qui est passer est une reference (je ne fait que confirmer les dire de coq :))