Accueil > Forum > > > > passer valeur de la form 1 à la form 2 puis à la form 3
passer valeur de la form 1 à la form 2 puis à la form 3
lundi 17 mars 2008 à 17:38:34 |
passer valeur de la form 1 à la form 2 puis à la form 3

ericdu93
|
Bonjour, je débute en orienté objet. Donc voilà, mon application est composé de trois form dans lequel l'utilisateur finale va remplir chacune de ces forms. Dans ma form1, j'instancie la form2 en passant l'instance de la form1 pour récupérer un attribut de la form1 dans ma form2. Ci-dessous le code pour montrer ca: Form1 f1: _f2 = new formChoixTable(this); _f2.Show();
Question 1: dans ma form 2, je vais juste récupérer 1 seulattribut de ma form1, donc est-ce qu'il vaut mieux que j'utilise une classe statique ? Dans ce cas là, dans ma form1, je stocke la valeur dans cette class statique que je récupére dans form2 ce qui amène à stocker les valeurs de form2 également dans cette classes statiques pour les utiliser dans form3 J'ai lu la documentation msdn sur les classes statiques (http://msdn2.microsoft.com/en-us/library/79b3xss3(VS.80).aspx) et il est dit: je cite:
Use a static class to contain methods that are not associated with a particular object. For example, it is a common requirement to create a set of methods that do not act on instance data and are not associated to a specific object in your code. You could use a static class to hold those methods. Question 2: je ne comprends pas, pour moi une méthode est toujours associé à un objet alors dans quel cas on considère qu'une méthode ne l'ait pas ? Je dois avouer que même en regardant les exemples de la page, je ne vois pas la différence.
Merci d'avance.
|
|
mardi 18 mars 2008 à 12:21:10 |
Re : passer valeur de la form 1 à la form 2 puis à la form 3

taupe4
|
Réponse acceptée !
Ce qui est mentionné sur MSDN, c'est que les classes statiques sont utilisés pour des variables ayant une portée globale et qu'elle n'affectent pas l'état d'un objet. Par exemple, une méthode qui créerait un tableau de données à partir d'un fichier. Cette méthode n'a pas besoin d'être dans un objet instancié, car elle ne dépend pas de l'objet. Par contre, le contenu d'un champ de texte, lui, est directement relié à l'objet, car il change selon l'état dudit objet. Si on aurait le contenu d'un champ de texte en statique, tous les champs de texte créé auraient le même texte.
En gros, static = 1 seule valeur dans tous les cas
variable d'instance = autant de valeurs que d'objets créés.
Mais je ne vois pas pourquoi l'autre méthode ne te convenait pas. Si tu veux, tu peux uniquement envoyer ledit paramètre dans ton constructeur de Form2. Par exemple:
public Form2(string nom)
{
}
Form2 form2 = new Form2(this.textBox1.Text);
|
|
mardi 18 mars 2008 à 15:08:52 |
Re : passer valeur de la form 1 à la form 2 puis à la form 3

ericdu93
|
Merci pour l'explication sur les classes/méthodes static. En gros, on utilises les méthodes static non pas pour stocker des valeurs mais juste créer des objets ou agir sur les objets comme formater une chaine de caractères.
En ce qui concerne le passage par paramètre. Le souci c'est que j'ai trois form.
dans ma form1, j'instancie form2 en passant l'instant de form1: donc j'accède aux attributs de form1 dans form 2. _f2 = new formChoixTable(this); _f2.Show();. ensuite pour aller dans form3, form2 crée une instance de form3 en passant une instance de form2. _f3 = new formChoixImport(this); _f3.Show();
Au final, dans ma form3, j'accède que aux attributs de form2, pas de form1. Je vous montre comment j'accède à form2 dans ma form3.
formChoixTable = form 2 formChoixImport = form 3
public partial class formChoixImport : Form { private formChoixTable _f2;
public formChoixImport() { InitializeComponent(); } public formChoixImport(formChoixTable f2) : this() { _f2 = f2; } private void test_Click(object sender, EventArgs e) { _f2 = new formChoixTable(); _f2.maMethode() //Ici j'ai accès que aux méthodes de form2 } }
Donc quel solution me proposez vous pour résoudre mon souci. (C'est la raison pour laquelle j'ai évoqué les classes static comme un moyen de stockage temporaire)
Merci
|
|
mardi 18 mars 2008 à 21:06:46 |
Re : passer valeur de la form 1 à la form 2 puis à la form 3

taupe4
|
Réponse acceptée !
Dans la Form3, tu envoies un paramètre de type Form1 et un autre de type Form2.
|
|
mardi 18 mars 2008 à 23:33:23 |
Re : passer valeur de la form 1 à la form 2 puis à la form 3

ericdu93
|
@taupe4, désolé, je ne comprends pas. Pourrai-tu fournir un exemple ? Merci.
|
|
mardi 18 mars 2008 à 23:39:04 |
Re : passer valeur de la form 1 à la form 2 puis à la form 3

taupe4
|
Réponse acceptée !
public Form3(Form1 etape1, Form2 etape2)
{
}
Dans form2 tu renvoies à Form3 la form1 que tu avais précédemment obtenue, en plus de this.
|
|
mardi 18 mars 2008 à 23:44:48 |
Re : passer valeur de la form 1 à la form 2 puis à la form 3

ericdu93
|
ok ca fonctionne, merci taupe4.
|
|
mercredi 19 mars 2008 à 00:26:17 |
Re : passer valeur de la form 1 à la form 2 puis à la form 3
|
mardi 15 avril 2008 à 12:11:32 |
Re : passer valeur de la form 1 à la form 2 puis à la form 3

selemfss
|
Bonjours, dans ce même cadre j'ai un petit probleme. Il est comme suit: j'ai une form1 depuis la quelle je lance une autre form2 et puis le probleme se pose au niveau de la passation de la valeur de la forme 2 à la forme 1 que je n'ai aps fermé
|
|
jeudi 17 avril 2008 à 00:39:13 |
Re : passer valeur de la form 1 à la form 2 puis à la form 3

taupe4
|
Si tu suis la méthode qui est de passer une instance de Form1 à form2, tu as alors accès à toutes les méthodes publiques de Form1, tu peux donc les appeler.
Tu peux aussi créer des événements que tu lances lorsque de l'attention doit être apportée par les écouteurs.
Je te conseille de regarder la source citée plus haut, soit http://www.csharpfr.com/codes/PASSAGE-PARAMETRES_26735.aspx, elle contient (à mon souvenir) un exemple avec des événements.
|
|
Cette discussion est classée dans : form, valeur, form2, to, form1
Répondre à ce message
Sujets en rapport avec ce message
pb lors d'un transfert de variable entre 2 form [ par kakol ]
Bonjour a tous,Voila j'ai 2 form, Form1 et Form2. Dans le Form1 j'ai un comboBox et je voudrais pouvoir me servir dans le Form2 de la valeur que je ch
Problème de passage de variables entre form [ par JuGuuL ]
Salut, C surement une question de newbies, C ce que je suis en C# J'ai 2 Form, Form1 et Form2 Au demarrage Form1 se met en transparent 0% et j'aff
Form1 et form 2 [ par paloxicide ]
comment récupérer la valeur de mon textbox du formulaire précédent sachant que je travaille en MDICAD je suis sur form1 je rentre une valeur dans dans
MDI container [ par paloxicide ]
G un form container sans menu. Ensuite, g 2 form mdiChild (form1 et form2) qui sont donc donc dans le container. Mon pb est que je n'arrive pas de pa
Form1 et Form2 [ par emmanuel9 ]
Boujour à tous, J'ai une form qui s'appelle Form1 et cette Form lance une autre Form qui s'appelle Form2 et je voudrais que dès que Form2 est affich
form inaccessible [ par cpetter ]
BonjourJe débute en C# et j'ai un petit problèmeJ'ai un form qui est mon programme principalEn plus j'ai un form qui s'ouvre depuis le menu du form1 e
Accèder à une varible d'une autre Form [ par Kaneda Shotaro ]
J'ai 2 forms : Form1 et Form2. Cette dernière est créée par Form1.Dans Form1 il y a ceci :namespace MonAppli{ public partial class </font
Passer d'une form a une autre :s [ par wally88 ]
Bonjour, alors j'ai vraiment du mal mais je n'arrive pas a passer d'une form a une autre. Dumoin afficher la form2 depuis un bouton placer sur la form
Lancer une Form depuis une autre [ par PiKtchou ]
Bonjour,Je souhaite lancer une Form2 depuis une Form1, et pouvoir fermer Form1 en conservant Form2 ouvert. J'ai essayé le code suivant ://en C#.NET//D
DatagridView et dérivation d'un form [ par RMI ]
Bonjour,J'ai un soucis avec VS2005.J'ai sur un formulaire Form1 un datagridview noté protected. Je dérive Form1 en Form2 mais je ne peux pas déplacer
Livres en rapport
|
Derniers Blogs
TECHDAYS PARIS 2010 : CONNECTEZ VOS DONNéES à SHAREPOINT 2010 AVEC LES BUSINESS CONNECTIVITY SERVICESTECHDAYS PARIS 2010 : CONNECTEZ VOS DONNéES à SHAREPOINT 2010 AVEC LES BUSINESS CONNECTIVITY SERVICES par ROMELARD Fabrice
Animé par: Gaetan Bouveret et Julien Chomarat Business Connectivity Services (BCS) est dans SharePoint 2010 la version 2 de Business Data Catalog (BDC dans SharePoint 2007). Il s'agit de la solution permettant de visualiser des données provenan...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice [DIVERS] SUIVRE VOS SéRIES PRéFéRéS SUR LA TOILE[DIVERS] SUIVRE VOS SéRIES PRéFéRéS SUR LA TOILE par orion
Comme de nombreux geek, je suis un grand amateur de série TV et je rate régulièrement des épisodes de mes séries préférés. Une solution s'offre à vous avec ce merveilleux site : Tv Gorge - www.tvgorge.com Moteur de recherche à l'appui, vous pouvez ...
Cliquez pour lire la suite de l'article par orion TECHDAYS PARIS 2010 : LA BI DANS SHAREPOINT 2010TECHDAYS PARIS 2010 : LA BI DANS SHAREPOINT 2010 par ROMELARD Fabrice
Animé par: Vincent Bellet et Baptiste Giraudier La BI dans SharePoint 2010, Les nouveaux services d'application dans SP2010 et SQL Server Reporting services 2008 R2. La BI dans SharePoint est généralisée pour tous afin de permettre à tous les coll...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice TECHDAYS PARIS 2010 : PLAN DE MIGRATION VERS SHAREPOINT 2010TECHDAYS PARIS 2010 : PLAN DE MIGRATION VERS SHAREPOINT 2010 par ROMELARD Fabrice
Animé par: Arnault Nouvel et Antoine Dongois Le processus à prendre : Apprendre (découvrir la plateforme) Préparer (documenter l'historique et choisir la méthode de MAJ) Test (Test de MAJ) Implémenter (Effectuer la MAJ) Valid...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Logiciels
DB-MAIN (9.1.0)DB-MAIN (9.1.0)DB-MAIN is a data-modeling and data-architecture tool. It is designed to help developers and anal... Cliquez pour télécharger DB-MAIN Xilisoft DPG Convertisseur (5.1.37.0120)XILISOFT DPG CONVERTISSEUR (5.1.37.0120)Xilisoft DPG Convertisseur offre aux fans de Nintendo DS une bonne solution leur permettant de dé... Cliquez pour télécharger Xilisoft DPG Convertisseur GraphicsGale (2.01.01)GRAPHICSGALE (2.01.01)GraphicsGale est un logiciel de PixelArt avec de nombreuse fonctionnalités permettant de réalisé ... Cliquez pour télécharger GraphicsGale Architecte 3D (Platinum 2010)ARCHITECTE 3D (PLATINUM 2010)Architecte 3D Platinium vous permet de concevoir facilement les plans votre future maison, de l'é... Cliquez pour télécharger Architecte 3D TeamViewer 5 (TeamViewer 5)TEAMVIEWER 5 (TEAMVIEWER 5)Dépanner un ami,expliquer une manipulation devient un jeu d'enfant.
Prise en main d'un autre ord... Cliquez pour télécharger TeamViewer 5
|