Communication entre fenetre C#
xmoix
Messages postés
36
Statut
Membre
-
chuka Messages postés 980 Statut Membre -
chuka Messages postés 980 Statut Membre -
Bonjour,
Comment changer la propriété d'un control d'un form à partir d'un autre form ?
Merci d'avance pour vos réponses. ^^
Comment changer la propriété d'un control d'un form à partir d'un autre form ?
Merci d'avance pour vos réponses. ^^
Configuration: Windows Vista Firefox 3.0.11
11 réponses
-
Salut,
Voila une petite solution:public maNouvelleFentre { //delegate pour modifier les controls de ta fenetre principale private delegate void SetPropertyDelegate(object ctl, string objName, object newValue); MaFenetrePrincipale F; //constructeur de ta nouvelle fenetre public maNouvelleFentre(MaFenetrePrincipale F) { this.F=F; } public void SetProperty(object ctl, string propName, object newValue) { Type t = ctl.GetType(); PropertyInfo pi = t.GetProperty(propName); if (pi != null) { pi.SetValue(ctl, newValue, null); } } public void ta_fonction() { ......................... ......................... //modifie le control Qui de la fenetre MaFenetrePrincipale , la propriété Text avec la valeur Mon_Text F.Invoke(new SetPropertyDelegate(SetProperty), new object[] { (object)lQui, "Text", "Mon_Text" }); }
J'espere ca pourra t'aider!!!
@+
-
Ok, heu, je ne comprends pas tout... des "new" dans des arguments ? Et à quoi sert "SetProperty" ?
-
Salut,
En fait, tu es obligé de passer par un delegate...une sorte de pointeur de fonction que tu dois utiliser pour la modification d'un control d'un autre thread...
Donc tu déclares ton degelate qui va pointer sur la fonction que tu vas lui passer en argument lors de l'appel:
new SetPropertyDelegate(SetProperty) //ce delegate va effectuer la fonction SetProperty, mais SetProterty prend trois arg en parametre, que tu passes dans un tableau d'objet:
new object[] { (object)lQui, "Text", "Mon_Text" });
Ainsi dans la fonction SetProperty, grâce à la reflexité, tu récupère le type de l'object passé en argument (une checkbox, une combobox, un label, une textbox etc....) et tu peux lui affecter la nouvelle valeur...
J'espere que cela a pu t'éclaircir un peu!!
@+
-
-
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
-
argh !!!! g travaillé toute la journée !!! pfff.. c long la prog !!!
-
form à partir d'un autre form ? ???????????
what!!!!!!!!!!!!!!!!!!!! pricise t'a question nom -
nan, heu je crois que g compris, mais c juste que g travaillé toute la journée, un vrai bosseur, com d'ab hi hi hi !!!
-
-
Dis moi, on fait pareil entre deux fenetre non-principale ?
-
Salut,
Normalement oui.
Tu refais le même schema que le premier code envoyé, et cela devrait fonctionner!!
@+