Agir sur les controls d'une form parent

Résolu
Utilisateur anonyme - 3 avril 2006 à 05:04
 Utilisateur anonyme - 3 avril 2006 à 11:18
Bonjour,



Dans mon apprentissage du C# se pose a moi un probleme, je n'arrive pas
a avoir acces aux proprietes d'un control qui se trouve dans une form
parent alors qu'il est tres facile a partir de cette form parent
d'avoir acces aux controls de la form fille.

J'imagine que je ne suis pas le premier a avoir ce probleme, comment faites vous ?



Merci d'avance.

9 réponses

taoetc Messages postés 346 Date d'inscription lundi 8 septembre 2003 Statut Membre Dernière intervention 3 septembre 2007 3
3 avril 2006 à 10:20
ba, je ne sais pas
c'est en effet curieux, car si il a accepté le forcage de type, c'est que l'objet doit bien le bon.

quand tu lances la fenetre fille,
est ce que tu fais un showDialog(this) ou juste showdialog() (show(this) ou juste show())

en mode débug, vérifie que this.perent n'est pas null.


Be happy , by
Tao
3
taoetc Messages postés 346 Date d'inscription lundi 8 septembre 2003 Statut Membre Dernière intervention 3 septembre 2007 3
3 avril 2006 à 10:32
oui , si tu mets Show(this) cela doit fonctionner

autrement , tu peux toujours passer l'instance de ta fenetre parent dans le constructeur de ta fenetre fille

public ChildForm(MainForm pMainForm)
{
......
}


Be happy , by
Tao
3
taoetc Messages postés 346 Date d'inscription lundi 8 septembre 2003 Statut Membre Dernière intervention 3 septembre 2007 3
3 avril 2006 à 08:27
il faut dans ta form fille forcé le typage de ta form parent du style

FormParent frmParente = (FormParent) this.MidParent;
^^^^ceci dans le cadre d'utilisation mdi,


Be happy , by
Tao
0
Utilisateur anonyme
3 avril 2006 à 09:40
Ce n'est pas une application mdi mais ca fonctionne tres bien (en
remplacant le MidParent par Parent). Merci beaucoup a tous ceux qui
aident les petits nouveaux comme moi sur des questions aussi basiques
parce que beaucoup ne "perdent" pas le temps de nous aider, merci
encore.
0

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

Posez votre question
Utilisateur anonyme
3 avril 2006 à 10:13
Euh...j'ai peut etre repondu un peu trop vite (sauf pour les
remerciements), en effet, le code semble fonctionner, j'ai acces aux
proprietes de mes controls mais quand j'execute mon programme j'ai une
erreur qui est la suivante :



An unhandled exception of type 'System.NullReferenceException' occurred in Surveillance Project.exe

Additional information: Object reference not set to an instance of an object.



D'apres ce que j'ai pu trouver c'est que mon objet (un timer ici)
n'aurait pas ete instancie mais je vois pas ce que j'ai oublie etant
donne qu'il s'instancie dans la form mere et que c'est c'est la form
fille qui essaye de le mettre Enabled



MainForm main = (MainForm) this.Parent;

main.timer1.Enabled = true;



Je ne vois pas bien ce qu'il faut que je rajoute.
0
Utilisateur anonyme
3 avril 2006 à 10:26
Hehe, gagne ! Le "this.parent" est null. Est ce a cause du fait que je fasse un show() pour lancer la fenetre fille ?
0
Utilisateur anonyme
3 avril 2006 à 10:51
Je ne vois pas comment declarer Show(this) etant donne que la methode Show n'accepte pas de parametre.
0
taoetc Messages postés 346 Date d'inscription lundi 8 septembre 2003 Statut Membre Dernière intervention 3 septembre 2007 3
3 avril 2006 à 10:55
si , elle accepte un parametre, tout comme le showdialog


Be happy , by
Tao
0
Utilisateur anonyme
3 avril 2006 à 11:18
Je ne comprends pas bien car chez moi elle est definie comme void Show ()



Cela etant dit, j'ai reussit a resoudre mon probleme en remplacant le this.Parent par this.Owner et cela fonctionne.



Merci beaucoup pour ton aide Tao.

I'm happy now.
0
Rejoignez-nous