[.NET2] acceder a une fonction de Form1 dans une autre classe

Résolu
cs_ChamY Messages postés 72 Date d'inscription mercredi 5 janvier 2005 Statut Membre Dernière intervention 22 mai 2009 - 3 févr. 2006 à 18:55
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 - 3 févr. 2006 à 23:02
Bonjour,
J'ai une question toute bete je pense, mais qui me pose un ptit probleme.

Je dispose d'une forme avec ca class (class form1), j ai egalement une classe (class fonction) qui contient toute mes fonctions à utiliser.

Dans ma classe form1, j ai une fonction Affiche qui permet de faire un affichage :/ (originale je sais).
Je voudrais appeller cette fonction dans ma classe fonction. Et la je sais pas faire.
Je ne peux pas faire de Form1 maform = new Form1(); sinon j'instancie 2 fois mes composant.

Comment proceder ?

mon code ressemble à ca :

namespace application1
{
public partial class Form1 : Form
{
private CFonction mesfonction;
public Form1()
{
InitializeComponent();
mesfonction = new CFonction();
}

public void Affiche(string message)
{
textbox1.Text("mon texte");
}

......
}

//class fonction
namespace application1

{
class Fonction
{
public Fonction() {} //constructeur par defaut
// le reste de ma classe
}
}

Merci de m aider :)
Bonne soirée (ou journée)

3 réponses

cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
3 févr. 2006 à 19:08
Salut,

namespace application1
{
class Fonction
{
private Form1 _form;

public Fonction(Form1 form)
{
this._form = form;
}

private void UneMethode()
{
this._form.Affiche("blabla");
}
}
}

Mais bon en général on essaie plutôt d'éviter de créer une dépendance du code "de travail" vis à vis de l'interface.

/*
coq
MVP Visual C#
*/
3
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
3 févr. 2006 à 23:02
Par exemple en définissant dans la classe de gestion des transferts, un event "MessageReceived" qui fournis le message qui vient d'arriver.
Ainsi ton code de traitement réseau etc n'est pas lié à l'interface en elle même, tu pourras le réutiliser dans un autre client par exemple.

/*
coq
MVP Visual C#
*/
3
cs_ChamY Messages postés 72 Date d'inscription mercredi 5 janvier 2005 Statut Membre Dernière intervention 22 mai 2009
3 févr. 2006 à 20:25
merci :)
je sais que se n'est pas tres tres beau de faire ca. Seulement j'en ai besoin pour tester mes fonctions.

En fait je travaille sur un programme sur les Sockets.
J'ai un client et un serveur. Je lance dans une tache ma fonction RecevoirTrame qui permet de lire en permanence les données du socket, et me retourne un string.
Comme ca je peux communiquer entre les deux machines de facon "instantanné" a la maniere d un msn.
C'est la ou je pensais faire appel a une fonction affiche, qui m affiche mon string. (donc dans le code de ma tache

Je vois pas comment faire sinon.
SI vous avez des exemples de code pour la communication entre 2 pc par tcp ip, ca m interresserais.
Merci
0
Rejoignez-nous