aragorn1024
Messages postés13Date d'inscriptionsamedi 6 décembre 2003StatutMembreDernière intervention27 avril 2004
-
2 janv. 2004 à 16:44
cs_vieuxLion
Messages postés455Date d'inscriptionsamedi 26 octobre 2002StatutMembreDernière intervention 6 avril 2004
-
3 janv. 2004 à 11:26
pb d aces a une fonction, voila ma premiere forme est une mdicontainer, et elle appel les autres form, ( des formulaires)
j ais cree une fonction
public void ad_contact()
{
Form4 FF = new Form4();
FF.MdiParent = this;
FF.Show();
}
qui cree une nouvelle fenetre fille a partir de la form1, mais le pb se pose kan je l appel d une autre form pour reagir a un click
comme ca:
Form1.ad_contact();
me sort d ereur :
Une référence d'objet est requise pour la propriété, la méthode ou le champ non statique 'WindowsApplication7.Form1.ad_contact()
cs_vieuxLion
Messages postés455Date d'inscriptionsamedi 26 octobre 2002StatutMembreDernière intervention 6 avril 20048 2 janv. 2004 à 22:40
bonjour,
il me semble que tu confonds CLASSe et OBJET
lorsque tu fais
Form4 FF = new Form4();
Form4 est une classe
FF est un objet
si la classe Form1 possède une méthode (non statique)
public void ad_contact()
alors pour appeler cette méthode, il faut une référence de type OBJET de type Form1 ... ou alors passer cette méthode en "static" comme ceci :
public static void ad_contact()
aragorn1024
Messages postés13Date d'inscriptionsamedi 6 décembre 2003StatutMembreDernière intervention27 avril 2004 3 janv. 2004 à 09:45
question de newbis... mais comment on fait une reference ?
et sinon ca marche pas, de passer en static
" Le mot clé this n'est pas valide dans un initialiseur de propriété statique, de méthode statique ou de champ statique"
faut surement creer une sorte d include, mais je trouve pas comment faire :(
cs_vieuxLion
Messages postés455Date d'inscriptionsamedi 26 octobre 2002StatutMembreDernière intervention 6 avril 20048 3 janv. 2004 à 11:26
Pour appeler un objet, il faut une référence
soit deux objets f1 et f2
Form1 f1= new Form1();
Form2 f= new Form2();
Ils ne peuvent pas communiquer car aucun ne possède de référence sur l'autre
Dans ton cas, c'est f1 qui fabrique une f4 dans la méthode ad_contact et qui lui passe une référence (this) sur son parent (f1) : grâce à cette référence, f4 est capable d'appeler une méthodes de f1
De même pour les autres Forms de ton projet, elles doivent avoir une référence sur f1
En général, la Form créatrice passe sa référence à la Form créée ... comme tu l'a fait
Conclusion : ajoute une Property de type Form1 aux Forms qui doivent communiquer avec f1 et passe "this" lors de leur création par f1