Agir sur les controls d'une form parent [Résolu]

Utilisateur anonyme - 3 avril 2006 à 05:04 - Dernière réponse :  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.
Afficher la suite 

Votre réponse

9 réponses

Meilleure réponse
taoetc 346 Messages postés lundi 8 septembre 2003Date d'inscription 3 septembre 2007 Dernière intervention - 3 avril 2006 à 10:20
3
Merci
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

Merci taoetc 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 69 internautes ce mois-ci

Commenter la réponse de taoetc
Meilleure réponse
taoetc 346 Messages postés lundi 8 septembre 2003Date d'inscription 3 septembre 2007 Dernière intervention - 3 avril 2006 à 10:32
3
Merci
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

Merci taoetc 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 69 internautes ce mois-ci

Commenter la réponse de taoetc
taoetc 346 Messages postés lundi 8 septembre 2003Date d'inscription 3 septembre 2007 Dernière intervention - 3 avril 2006 à 08:27
0
Merci
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
Commenter la réponse de taoetc
Utilisateur anonyme - 3 avril 2006 à 09:40
0
Merci
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.
Commenter la réponse de Utilisateur anonyme
Utilisateur anonyme - 3 avril 2006 à 10:13
0
Merci
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.
Commenter la réponse de Utilisateur anonyme
Utilisateur anonyme - 3 avril 2006 à 10:26
0
Merci
Hehe, gagne ! Le "this.parent" est null. Est ce a cause du fait que je fasse un show() pour lancer la fenetre fille ?
Commenter la réponse de Utilisateur anonyme
Utilisateur anonyme - 3 avril 2006 à 10:51
0
Merci
Je ne vois pas comment declarer Show(this) etant donne que la methode Show n'accepte pas de parametre.
Commenter la réponse de Utilisateur anonyme
taoetc 346 Messages postés lundi 8 septembre 2003Date d'inscription 3 septembre 2007 Dernière intervention - 3 avril 2006 à 10:55
0
Merci
si , elle accepte un parametre, tout comme le showdialog


Be happy , by
Tao
Commenter la réponse de taoetc
Utilisateur anonyme - 3 avril 2006 à 11:18
0
Merci
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.
Commenter la réponse de Utilisateur anonyme

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.