Passage de paramétre par ref entre 2 form [Résolu]

Signaler
Messages postés
125
Date d'inscription
mercredi 15 novembre 2000
Statut
Membre
Dernière intervention
2 mars 2006
-
Messages postés
346
Date d'inscription
lundi 8 septembre 2003
Statut
Membre
Dernière intervention
3 septembre 2007
-
Bonjour à tous les csharpiens, j'ai encore besoin d'aide !
Donc j'ai 2 form windows, et puis une classe colis, je dans la form1, quand je clique sur un bouton, je créer un objet à l'aide de valeurs de textBox et je créer une instance form2 ou je passe en paramètre mon objet comme ceci :

colis c = new colis(.....);
Form2 form2 = new form2(ref c);
form2.show();

Donc dans le constructeur de form2, je peux utiliser les méthodes de l'objet c. Mais moi j'aimerai bien les utiliser dans le form_load,mais j'y arrive pas.

Merci d'avance.

Kbitnik

8 réponses

Messages postés
346
Date d'inscription
lundi 8 septembre 2003
Statut
Membre
Dernière intervention
3 septembre 2007
3
dans form 2 declare


colis cCopie;


et dans le constructeur :
public form2 (Colis paramColis)
{
cCopie = paramColis;
}

tu fais : Form2 form2 = new form2(c);

pas besoin de ref avec les objet, quand tu fais le = tu pointes automatiquement vers le meme objet original, et la tu peux t'en servir dans ton form load


Be happy , by
Tao
Messages postés
125
Date d'inscription
mercredi 15 novembre 2000
Statut
Membre
Dernière intervention
2 mars 2006

Ahhh ça yé ok, j'ai réussi ! ça m'évite d'utiliser les variables static (j'aime pas trop) !
Je te remercie Taoetc !

Kbitnik
Messages postés
125
Date d'inscription
mercredi 15 novembre 2000
Statut
Membre
Dernière intervention
2 mars 2006

par contre, j'ai encore un petit problème, si je fais comme tu as fait ça fonctionne je veux dire que je peux utiliser mon objet mais le programme s'arréte automatiquement, avec une erreur, qui se situe dans le static void main() de ma form1.
Donc en faite, j'ai rien changé dans cette partie, elle est comme ceci :
static void main()
{
Application.run(new form1());
}

peut etre que c'est à cause du pointeur... je ne sais pas !

Kbitnik
Messages postés
3466
Date d'inscription
lundi 16 octobre 2000
Statut
Modérateur
Dernière intervention
30 octobre 2008
44
Et quelle est cette erreur ?



Mx
MVP C#
Messages postés
125
Date d'inscription
mercredi 15 novembre 2000
Statut
Membre
Dernière intervention
2 mars 2006

et bien en faite, il s'arétte le programme, il me met le message d'erreur un genre de message box avec continuer redémarrer arreter et puis il surligne en jaune l'accolade qui ferme le static void main de la form1. C'est trop bizarre !
Messages postés
3246
Date d'inscription
lundi 25 avril 2005
Statut
Modérateur
Dernière intervention
27 octobre 2012
32
C'est justement le message d'erreur et le nom de l'exception qu'aimerait avoir Mx, je pense que tu as une erreur dans le constructeur et donc la classe ne peut pas être créée avec l'opérateur new c'est pour ça que tu as une erreur dans la méthode Main.
Messages postés
125
Date d'inscription
mercredi 15 novembre 2000
Statut
Membre
Dernière intervention
2 mars 2006

Ok donc voici le message d'erreur, dès que je clique sur le bouton i m'affiche bien mon form2 avec toutes les infos que je veux mais ensuite il marque :

Une exception non gérée du type 'System.FormatException' s'est produite dans system.windows.forms.dllInformations supplémentaires : Le format de la chaîne d'entrée est incorrect.

je ne sais pas quoi faire ?

Kbitnik
Messages postés
346
Date d'inscription
lundi 8 septembre 2003
Statut
Membre
Dernière intervention
3 septembre 2007
3
Be happy , by
Tao