Communication entre 2 classes du meme namespace [Résolu]

Signaler
Messages postés
46
Date d'inscription
jeudi 10 janvier 2002
Statut
Membre
Dernière intervention
5 février 2010
-
Messages postés
1522
Date d'inscription
mardi 18 décembre 2001
Statut
Modérateur
Dernière intervention
21 août 2010
-
salut,

ma demande est sur un procédé de communication entre 2 classes du meme namespace mais je ne comprend pas

j'ai une form et dedan j'ai une textbox

de l'autre j'ai une classe server

j'aimerai que la classe server puisse afficher son état ds le textbox de la form...

mais pas moyen

la classe server ne voit la textbox que si celle ci est déclarée en static mais dès lors ds la form y a des prob de référence... et le prob tourne en rond...

avez-vous une idée, une solution, qqch ?

merci bcp

Killan
www.daaboo.net

5 réponses

Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
85
tu peux par exemple :

passer le textbox en parametre au constructeur de ta classe serveur (et conserver cette valeur dans la classe), ainsi tu pourras y ecrire directement

ou

coder un event dans la classe serveur que tu declenches quand l'etat change, avec comme argument (ou un des arguments) l'etat dont il est question

Cocoricoooooooo !!!!
Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
85
tu declares un objet TextBox comme membre de ta classe Serveur

exemple :

class Serveur
{
// membres
private System.Windows.Forms.TextBox txtbox_to_update;

public Serveur(System.Windows.Forms.TextBox txtbox)
{
txtbox_to_update = txtbox;
}
}


enfin cette solution est ce que j'appellerais la solution de dépannage, parce que coté réutilisation et maintenance du code c'est pas le top

Cocoricoooooooo !!!!
Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
85
bon tant que j'y suis un petit exemple pour l'event (simple) :

dans la classe "Serveur" :
public class Serveur
{
// le delegate nécessaire pour définir l'event
public delegate void StatusChangedEventHandler(string status);

// l'event
public event StatusChangedEventHandler StatusChanged;

// un methode qui va declencher l'event
public void Methode()
{
...
if ( StatusChanged != null )
StatusChanged("blabla"); // déclenhement
...
}
}


pour s'abonner à l'event fourni par Serveur :
serveur.StatusChanged += new Serveur.StatusChangedEventHandler(serveur_StatusChanged);


la methode associée à l'event :
private void serveur_StatusChanged(string status)
{
textBox1.Text = status;
}


Cocoricoooooooo !!!!
Messages postés
46
Date d'inscription
jeudi 10 janvier 2002
Statut
Membre
Dernière intervention
5 février 2010

Comment pourrai-je garder la référence de la textbox...

la passer en paramètre je vois mais la garder pour quelle soit utilisable par les fonctions de la classe je vois pas ?

peux-tu m'éclaircir stp

et faire un event je vois se que tu veu dire mais c encore un peu hard pour moi lol

Killan
www.daaboo.net
Messages postés
1522
Date d'inscription
mardi 18 décembre 2001
Statut
Modérateur
Dernière intervention
21 août 2010
5
Bien petit Coq 3 bonnes reponses sur 3 :)

A++

:-p Crazyht :)
MVP Visual C#.NET

[Admin Codes-Sources]
[Membre Developer-Association]