begin process at 2010 02 10 02:54:21
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C#

 > 

Windows

 > 

Formulaire / Winforms / Controls

 > 

Passage de variable a une form par reference


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Passage de variable a une form par reference

dimanche 25 mars 2007 à 13:20:00 | Passage de variable a une form par reference

DiJiTooL

Bonjour!
J'aimerai passer des variables provenant d'une de mes classe à une form par référence, afin que lorsque la personne remplisse les champs de la form, les variables soit modifier, et que lorsque la form se ferme ma classe puisse donc enregistrer les valeurs.
Voici un peu plus en détail le fonctionnement :


___________________________________________________________________________

//Application principale
Main(){
            string ip;
            string typeCN;
            int port;
           
//Creation du gestionnaire machine :
leGestionnaireDeMachines = new CGestionnaireMachines(fichierMachinesXml);

//Le gestionnaire machine creer la fenetre ChoixMachine en lui passant par reference les variables
leGestionnaireDeMachines.FenetreChoixMachine(out ip, out port, out typeCN);
//Une fois la variables modifié par la form, on creer le gestionnaire de transfert :
 leGestionnaireDeTransfert = new CCommunicationFagor(ip, port);
 
}

___________________________________________________________________________

//Constructeur de la fenetre choix machine
  public CfrmChoixMachine(out string retIP, out int retPort, out string retTypeCN)
        {
            InitializeComponent();
        }
       
//Si je modifie retIP dans le constructeur il est bien modifié dans l'appli principal, cependant le but n'est pas d'effectuer la modification des variables dans le constructeur mais dans une fonction de la form :

  private void btnConnect_Click(object sender, EventArgs e)
        {
            selectedIP = lblAdresseIn.Text;
            selectedPort = Int32.Parse(lblPortIn.Text);
            selectedCN = lblCommandeIn.Text;
            Close();
        }

___________________________________________________________________________

Voilà donc j'aimerai que ce ne soit pas les variables selectedIP, selectedPort, selectedCN qui soit modifiées mais les variables retIP, retPort, retTypeCN, afin que ma classe puisse connaitre l'ip, le port et le type de commande numérique séléctionné par l'utilisateur.

Avec des pointeurs celà aurrait était trés simple, j'aurrais simplement enregistrer l'adresse des variables ip, port et typeCN, dans ma form et j'aurrais attribué une valeur lors de l'appui sur le boutton. Le problème est que le C# ne m'autorise pas à utiliser les pointeurs avec des arguments de type string....
En esperant que quelqu'un puisse m'aider.
Merci d'avance.
dimanche 25 mars 2007 à 13:25:26 | Re : Passage de variable a une form par reference

Bidou

Administrateur CodeS-SourceS
Salut,
Tu peux jeter un coup d'oeil à cette source





-Blog-
dimanche 25 mars 2007 à 14:07:14 | Re : Passage de variable a une form par reference

Lutinore

Administrateur CodeS-SourceS
Salut, le int 'port' étant sur la pile on peux utiliser les pointeurs, pour les chaines aussi mais faudrait les fixer en mémoire ce qui là dans ce cas va donner un code vraiment mal foutu..Les chaines sont bien des types références mais elles sont aussi immuables ce qui leur donne un comportement de type valeur, on peut les remplacer par des StringBuilder par exemple. Là le plus simple pour toi à mons avis c'est de mettre les variables qui sont dans Main en static dans la classe.
dimanche 25 mars 2007 à 14:13:24 | Re : Passage de variable a une form par reference

coq

Administrateur CodeS-SourceS
Réponse acceptée !
Salut,

Sinon une classe dédiée a contenir les valeurs c'est sympa aussi, il suffira d'en passer une instance en paramètre.
Autre avantage de la chose : évolution du contenu sans briser le code existant.



/*
coq
MVP Visual C#
CoqBlog
*/
dimanche 25 mars 2007 à 15:01:20 | Re : Passage de variable a une form par reference

DiJiTooL

Merci tout le monde, j'ai finallement opté pour la solution de coq, j'ai créé une classe CMachineAttributs et je passe l'objet en paramètre au constructeur de ma form qui l'enregistre

Merci encore

dimanche 25 mars 2007 à 15:05:58 | Re : Passage de variable a une form par reference

DeAtHCrAsH

Pourquoi ne pas tout simplement surcharger le constructeur de la classe, puis lui passer en param "out" les variables nécéssaire.

Sinon une autre solution est de créer une classe singleton crée et initialisée dans le main. 

Shell
dimanche 25 mars 2007 à 15:08:48 | Re : Passage de variable a une form par reference

DiJiTooL

Car ce n'est pas ma form qui creer la classe mais l'inverse...
dimanche 25 mars 2007 à 15:43:59 | Re : Passage de variable a une form par reference

Bidou

Administrateur CodeS-SourceS
coq> C'est exactement ce que je fais dans la source que je proposais.... héhé






-Blog-
dimanche 25 mars 2007 à 15:49:25 | Re : Passage de variable a une form par reference

DiJiTooL

Oui bidou j'avais remarqué :) mais est-ce que les events sont trés recommandés dans ce genre de situation?

dimanche 25 mars 2007 à 16:02:38 | Re : Passage de variable a une form par reference

Bidou

Administrateur CodeS-SourceS
Euh, ya un exemple avec les events, et un exemple en passant par le constructeur si je me souviens bien...





-Blog-

1 2

Cette discussion est classée dans : form, variables, string, out, ip


Répondre à ce message

Sujets en rapport avec ce message

?? Transformer String en INT ?? [ par Jujufouq ] Bonjour, j'ai un petit problème.En VB les variables de types String étaient automatiquement traduites en variables de types integer. Mais aujourd'hui erreur de strings [ par rhodan51 ] j'ai recopié l'exemple d'un bouquin mais il m'apparait une erreur lors de la compilation :[quote]chaine.cs(7,20): error CS1502: La méthode surchargée Mise à Jour [ par piep14 ] Bonjour, je dois insérer ou mettre a jour ma base de données Mysql a partir de mon application C#. Donc j'ai fais ceci : string MySQLCmd2 = "sele passage de variables entre 2forms [ par billut ] salut a tous, voila j'aimerai passer une variable entre deux forms mais je sais pas du tout comment faire.. jai 2forms et 1 bouton sur chaque form, ja Dataset et variables [ par T103 ] Bonsoir,Voici mon code :                string requete = "select nom from client where nom = 'toto'";                DataSet ds = new DataSet();       Visibilité des variables Public Static : toujours pas compris [ par olibara ] BonsoirJe n'ai hélas toujours pa bien compris le mecanisme de visibilité des variables en C# (pourtant en c je n'ai pas de problème avec ca)Dans la cl Probleme avec les form [ par xander9711 ] Bonjour, j'ai commencé le c# hier, j'ai lu beaucoup de tuto divers mais n'ayant pas trouvé mon bonheur concernant la partie graphique du c# je vais po Comment met on des variables dans une string? [ par EksTaZia ] tout est dans la question string en hexa [ par aurelie ] J'aimerais convertir une chaine sous la forme "0x0004" en hexadecimal, mais je n'arrive pas à le faire. Quelqu'un pourrait-il m'aider? Merci d'avance. conversion de char* en C# [ par gwenn035 ] Bonjour à tous, je debute en C# et en Cpp (je suis plutot Java pour le moment) et j'ai fais une dll en vc++ qui contient une procedure qui a 4 paramèt


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,686 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales