Passage de parametres entre 2 Forms existantes

cs_Akutabi Messages postés 5 Date d'inscription dimanche 19 septembre 2004 Statut Membre Dernière intervention 10 octobre 2004 - 9 oct. 2004 à 22:04
MorpionMx Messages postés 3466 Date d'inscription lundi 16 octobre 2000 Statut Membre Dernière intervention 30 octobre 2008 - 17 mars 2007 à 16:28
Voilà, j'ai un programme avec 2 Forms. La première a une ListBox et un bouton 'Ajouter'. Quand je clique sur le bouton, ça m'ouvre une autre Form (la 2ème) dans la laquelle je saisie mes données et une fois fini j'appuie sur le bouton 'OK'.

Mon problème est le suivant, je veux que les données que j'ai saisie dans la Form 2 s'affiche dans la ListBox de la Form 1 mais je n'arrive pas à les passer en paramètres à la Form 1....

J'ai essayé une méthode déjà présente sur le forum mais elle ne règle pas mon problème étant donné qu'elle crée une nouvelle instance de la Form 1 et l'affiche à l'écran par dessus l'ancienne...

12 réponses

cs_Bidou Messages postés 5486 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 61
10 oct. 2004 à 11:11
Salut,

J'ai déjà répondu à cette question une fois :-)
ici
0
cs_Akutabi Messages postés 5 Date d'inscription dimanche 19 septembre 2004 Statut Membre Dernière intervention 10 octobre 2004
10 oct. 2004 à 12:05
sauf que la source que tu as proposé ne marche que dans le cas où tu veux créer une nouvelle Form 2 en passant un paramêtre venant de la Form 1, nan?

Donc je vois pas en quoi ça répond à mon problème....vu que dans mon cas, je veux faire un passage de paramètres entre deux objets déjà existants.
0
cs_Bidou Messages postés 5486 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 61
10 oct. 2004 à 12:24
Non.
Dans l'exemple, je passe un struct (tu peux passer une classe si tu veux) et cette structure (ou classe) peut posséder n'importe quoi, par exemple dans ton cas les données saisient par l'utilisateur dans ta ListBox.
Et puis, t'es pas obligé de passé par le constucteur, tu peux par exemple faire une property ou bien utiliser les events...
0
cs_Akutabi Messages postés 5 Date d'inscription dimanche 19 septembre 2004 Statut Membre Dernière intervention 10 octobre 2004
10 oct. 2004 à 13:25
J'vois pas trop comment je peux faire avec ce que tu me dis, t'aurais pas un exemple ?

Quant à moi, voilà ce que je veux faire exactement au niveau du transfert des données:
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Bidou Messages postés 5486 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 61
10 oct. 2004 à 13:41
tu peux faire une class client par exemple :
(Je fais ça de tête donc corrige les petites erreurs si y'en a)

class Client
{
   private string _lastName;
   private string _firstName;
   private string _eMail;

public Client() {}

//la tu fais les property, j'en fait juste une, c'est la meme chose pour les autres
public string LastName
{
get { return this._lastname; }
set { this._lastName = value; }
}

// Even. des méthodes pour tes clients (par exemple, une méthode save qui créer un file xml avec toutes tes clients dedans)
}


Ok maintenant tu as une class client.
Quand le user click sur ok tu fais :

Client c = new Client();
c.LastName = txtLastName.Text;
// ici la suite des property


Puis dans ta class form2 (celle qui permet de rentrer un nouveau user) tu dois avoir une référence de form1 (voir mon exemple de code, URL dans mon premier message)
Puis tu fais :

tu fais form1.Client = c; // Assigne à form1 (la ou t'as les listView) le nouveau client. Cette property doit ensuite ajouter les champs dans le ListView


Voila, c'est surement pas la meilleure solution, mais c'est facile et ca marche. Si tu veux faire mieux, il faut intercepter avec un event le click sur le bouton ok (dans form2) et ensuite faire l'ajout quand tu interceptes le clique.
Ok?
0
cs_Akutabi Messages postés 5 Date d'inscription dimanche 19 septembre 2004 Statut Membre Dernière intervention 10 octobre 2004
10 oct. 2004 à 14:54
Ok, j'crois avoir compris par contre étant donné que ma Form 1 "Accueil" est la fenêtre de départ du programme, je ne connais pas son nom, seulement son type donc je peux fair comment dans ce cas ?
0
cs_Bidou Messages postés 5486 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 61
10 oct. 2004 à 15:22
Attends ce soir, jvais poster un petit exemple sur le site...
0
cs_Bidou Messages postés 5486 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 61
10 oct. 2004 à 21:04
0
cs_Akutabi Messages postés 5 Date d'inscription dimanche 19 septembre 2004 Statut Membre Dernière intervention 10 octobre 2004
10 oct. 2004 à 21:07
J'pense avoir trouvé comment passer les paramètres (je sais pas si c'est ce que tu essayais de m'expliquer...).

En fait quand je crée ma nouvelle Form (celle de saisie des données), je lui passe en paramètre via son constructeur la Form qui contient le ListView. Du coup, une fois dans ma nouvelle Form je peux directement accéder à la Form précédente et lui envoyer les données.
0
cs_Bidou Messages postés 5486 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 61
10 oct. 2004 à 22:09
C'est une solution, mais c'est de loin pas la meilleure.
Regarde la source que j'ai postée, c'est exactement ce que tu as besoin, et c'est fait plus ou moins qu'il faut !
0
cs_Jordan59 Messages postés 174 Date d'inscription vendredi 26 mai 2006 Statut Membre Dernière intervention 9 avril 2014 7
17 mars 2007 à 15:49
Bonjour à tous,

Je souhaiterais faire la même chose mais en passant deux variables

J'ai ma form1 avec mon plateau de jeu. Je souhaite appeler la Form2 en lui faisant passer en paramètre la question.
Ensuite l'utilisateur saisit la réponse à la question et je souhaite repasser en paramètre à la première form la réponse à la question qui sera saisie dans la form2 et tout cela sans quitter la form1!

Je ne sais pas si je me suis bien exprimé

S'il n'y a pas de possibilité, je mettrais cela dans un fichier texte

Merci d'avance
0
MorpionMx Messages postés 3466 Date d'inscription lundi 16 octobre 2000 Statut Membre Dernière intervention 30 octobre 2008 57
17 mars 2007 à 16:28
Salut,

Bien sur que c'est possible. Jette un oeil a la source de bidou (lien dans le message juste au dessus du tiens), tu peux t'en inspirer, c'est le meme principe.

Tu peux aussi utiliser la facon de faire que j'explique dans ce message

Mx
MVP C# 
0
Rejoignez-nous