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

cs_ChamY 74 Messages postés mercredi 5 janvier 2005Date d'inscription 22 mai 2009 Dernière intervention - 3 févr. 2006 à 18:55 - Dernière réponse : cs_coq 6366 Messages postés samedi 1 juin 2002Date d'inscription 2 août 2014 Dernière intervention
- 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 

Votre réponse

3 réponses

Meilleure réponse
cs_coq 6366 Messages postés samedi 1 juin 2002Date d'inscription 2 août 2014 Dernière intervention - 3 févr. 2006 à 19:08
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#
*/

Merci cs_coq 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 101 internautes ce mois-ci

Commenter la réponse de cs_coq
Meilleure réponse
cs_coq 6366 Messages postés samedi 1 juin 2002Date d'inscription 2 août 2014 Dernière intervention - 3 févr. 2006 à 23:02
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#
*/

Merci cs_coq 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 101 internautes ce mois-ci

Commenter la réponse de cs_coq
cs_ChamY 74 Messages postés mercredi 5 janvier 2005Date d'inscription 22 mai 2009 Dernière intervention - 3 févr. 2006 à 20:25
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

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.