clem44nantes
Messages postés14Date d'inscriptiondimanche 22 mars 2009StatutMembreDernière intervention20 mai 2009
-
18 mai 2009 à 14:41
cs_nasros86 -
30 mai 2011 à 18:05
Bonjour à tous depuis quelques jours je suis sur un problème avec mon application, j'ai mon 1er formulaire avec 2 boutons, 1 pour afficher le second formulaire(qui lui mm comporte 1 bouton pour afficher le 3ème formulaire), et le second qui affiche directement le 3eme formulaire. Microsoft Visual studio me génère une erreur "
'passage_valeur.Form3' ne contient pas un constructeur qui accepte des arguments '0'
<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /??>
krimog
Messages postés1860Date d'inscriptionlundi 28 novembre 2005StatutMembreDernière intervention14 février 201549 18 mai 2009 à 15:12
Bah c'est pourtant simple (en plus il doit te dire la ligne où ça plante) : Form3 form3 new Form3(this);> La classe Form3 n'a pas de constructeur acceptant un premier argument (argument 0)
car dans Form3, tu as
public Form3()
{
InitializeComponent();
}
soit tu as besoin de la référence à form1 dans form3, dans ce cas change ton constructeur (ce qui semble être le cas puisque tu utilise ta form1 dans ta form3 :
public Form3(Form1 maForm1)
{
InitializeComponent();
this.form1 = maForm1;
}
soit tu n'en a pas besoin dans ce cas change ton appel :
From3 form3 = new Form3();
Krimog : while (!(succeed = try())) ;
- NON, "LE BAR" n'est PAS un langage de programmation ! -
clem44nantes
Messages postés14Date d'inscriptiondimanche 22 mars 2009StatutMembreDernière intervention20 mai 2009 18 mai 2009 à 15:56
Merci pour ta réponse, j'ai rajouté ce que tu m'a dit et sa marche, maintenant je voudrai appuyer sur mon bouton dans le form3 pour cacher le bouton de mon form1, j'y arrive du form1 au form2 mais pas du form1 au form3
clem44nantes
Messages postés14Date d'inscriptiondimanche 22 mars 2009StatutMembreDernière intervention20 mai 2009 19 mai 2009 à 08:59
j'arrive a modifier mon bouton 1 dans form1 depuis mon boutton dans form3, le seul souci c'est quand je veux rajouter l'ouverture du form3 dans le form2(Erreur 1 'passage_valeur.Form3' ne contient pas un constructeur qui accepte des arguments '0)
Form 1 :
<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /??>
krimog
Messages postés1860Date d'inscriptionlundi 28 novembre 2005StatutMembreDernière intervention14 février 201549 19 mai 2009 à 09:57
Bon, là désolé, mais je ne te fournirai pas de code. Réfléchis un peu avant de poser ce genre de questions.
Le compilateur de dit où est l'erreur et quelle est l'erreur. A toi de la corriger (attention que ce n'est pas parce que l'erreur est à un endroit que c'est à cet endroit qu'il faut changer quelque chose). Car ce genre d'erreur, tu risques d'en rencontrer souvent, et si tu n'arrives pas à la corriger toi-même...
(A ceci près que ça risque d'être un poil plus compliqué si tu veux que le bouton de ta form2 soit caché en cliquant sur le bouton de ta form3)
Krimog : while (!(succeed = try())) ;
- NON, "LE BAR" n'est PAS un langage de programmation ! -
clem44nantes
Messages postés14Date d'inscriptiondimanche 22 mars 2009StatutMembreDernière intervention20 mai 2009 19 mai 2009 à 13:41
Merci pour ton aide, je vien de finir le code, visual studio ne me génère aucune erreur, lors de la compilation, sauf que quand je suis dans le programme dans mon formulaire 3 je click sur le bouton pour cacher un bouton dans le premier formulaire il me met une erreur(le référence d'objet n'est pas définie à une instance d'un objet), j'ai éssayer pour cacher un bouton du formulaire 2 ou 3 sa marche. si je pouvais avoir quelque éclaircie sur l'erreur qu'il me génère.merci beaucoup
krimog
Messages postés1860Date d'inscriptionlundi 28 novembre 2005StatutMembreDernière intervention14 février 201549 19 mai 2009 à 13:56
Petite astuce :
l'erreur "la référence d'objet n'est pas définie à une instance d'un objet" arrive quand tu fais
monObjet.membre
monObjet.Propriété
ou monObjet.Méthodealors que monObjet null.> de manière générale, un
if(monObjet != null)
{
//...
}
suffit
Krimog : while (!(succeed = try())) ;
- NON, "LE BAR" n'est PAS un langage de programmation ! -
clem44nantes
Messages postés14Date d'inscriptiondimanche 22 mars 2009StatutMembreDernière intervention20 mai 2009 19 mai 2009 à 15:24
je ne voi vraiment pas ou je dois mettre le if, je l'ai mi dans mon form3 au niveau du click sur le bouton pour cacher, monobjet fait référence a mon bouton?
krimog
Messages postés1860Date d'inscriptionlundi 28 novembre 2005StatutMembreDernière intervention14 février 201549 20 mai 2009 à 10:25
Tu ne me semble pas avoir beaucoup cherché, surtout quand je te dis que dans "form1.btnform1.Visible", ce n'est pas btnform1 qui est null...
"tout est créer correctement"
Créé correctement, oui, mais pas référencé partout.
Bon, je vais faire simple :
si tu mets un "." (un point) après un objet qui est null, il y a une erreur.
Tu pensais que c'est form1.btnform1 qui était null, et c'est là où tu te trompes.
D'ailleurs, lorsque tu crées un form1, la méthode InitializeComponent() de cette form est appelée (dans le constructeur), donc selon toute vraisemblance, btnform1 est créé, donc n'est pas null.
Ton problème vient tout simplement du fait que c'est form1 qui est null !!!
Et c'est logique : si tu crées ta form3 depuis ta form2, le membre form1 de ta form3 n'est pas initialisé, et donc est null.
Et puisque tu ne crées ta form3 que depuis ta form1 OU ta form2, l'un des deux sera toujours null, et l'autre non.
if(form1 != null)
{
form1.btnform1.Visible = false;
}
else if(form2 != null)
{
form2.btnform2.Visible = false;
}
else
{
// Normalement, tu ne devrais jamais arriver ici.
}
Krimog : while (!(succeed = try())) ;
- NON, "LE BAR" n'est PAS un langage de programmation ! -
clem44nantes
Messages postés14Date d'inscriptiondimanche 22 mars 2009StatutMembreDernière intervention20 mai 2009 20 mai 2009 à 11:45
ok, donc maintenant j'arrive dans mon 1er sinon si qui cache le bouton du form2 donc form2 est bien initialisé, j'ai fais pareil pour le form 1 mais il est toujours null.
clem44nantes
Messages postés14Date d'inscriptiondimanche 22 mars 2009StatutMembreDernière intervention20 mai 2009 20 mai 2009 à 14:05
je voudrais savoir en derniere question si il serait possible a partir d'un bouton de modifier le initialize component pour garder en mémoire la valeur visible d'un bouton soit true ou false.merci
krimog
Messages postés1860Date d'inscriptionlundi 28 novembre 2005StatutMembreDernière intervention14 février 201549 20 mai 2009 à 14:09
Relis-toi s'il te plait, car c'est difficilement compréhensible.
Tu veux que quand tu crées une form2 depuis ta form1 et que tu crées une form3 depuis ta form2, en cliquant sur le bouton de la form3 ça cache le bouton de la form1 ?
Dans ce cas, il faut transmettre une référence de ta form1 lorsque tu crées ta form2, puis que tu passes cette référence lors de la création de ta form3.
Vu que c'est ce qu'on a fait depuis maintenant 2 pages de forum, tu devrais quand même être capable de te débrouiller pour faire ça seul.
Krimog : while (!(succeed = try())) ;
- NON, "LE BAR" n'est PAS un langage de programmation ! -