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

Messages postés
72
Date d'inscription
mercredi 5 janvier 2005
Statut
Membre
Dernière intervention
22 mai 2009
- - Dernière réponse : cs_coq
Messages postés
6352
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
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)
Afficher la suite 

3 réponses

Meilleure réponse
Messages postés
6352
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
75
3
Merci
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#
*/

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 6032 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_coq
Messages postés
6352
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
75
3
Merci
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#
*/

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 6032 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_coq
Messages postés
72
Date d'inscription
mercredi 5 janvier 2005
Statut
Membre
Dernière intervention
22 mai 2009
0
Merci
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
Commenter la réponse de cs_ChamY