Utiliser l'orienté objet pour cibler un ensemble de composant du meme type
cs_hmedjojo
Messages postés11Date d'inscriptionlundi 10 novembre 2003StatutMembreDernière intervention12 mars 2009
-
14 févr. 2009 à 04:52
WishhhMaster
Messages postés327Date d'inscriptionmardi 17 février 2004StatutMembreDernière intervention10 avril 2010
-
12 mars 2009 à 04:57
salut a toutes et a tous.
je voudrai sa voir comment utiliser l'orienté objet pour donner l'instruction de vider toutes les textbox presents sur mon formulaire en se basant sur leur type pour les vider. genre "Control.textbox.clear()" !?.
merci.
blaze
A voir également:
Utiliser l'orienté objet pour cibler un ensemble de composant du meme type
cs_hmedjojo
Messages postés11Date d'inscriptionlundi 10 novembre 2003StatutMembreDernière intervention12 mars 2009 16 févr. 2009 à 01:09
Apres consultation de la page traitant sur les casts il est donc meilleur d'un point de vu performance d'utiliser l'opérateur as et éviter le downcasting car il est couteux.
bubbathemaster
Messages postés339Date d'inscriptiondimanche 26 janvier 2003StatutMembreDernière intervention25 mars 20094 16 févr. 2009 à 11:21
Très interressant.
J'ai toujours pensé que le cast ((type)objet) était plus rapide que (objet as type), pour la simple et bonne raison qu'en C, ce type de casting est en fait totalement transparent: on manipule un pointeur. Que ce soit un pointeur de toto ou de titi, on s'en fout, ca reste un int32. Je me suis dit qu'en interne, en C# ca devait faire pareil.
Grosse erreur; puisque le downcast c# effectue tout un bordel pour possiblement lancer une exception de type InvalidCastException.
cs_hmedjojo
Messages postés11Date d'inscriptionlundi 10 novembre 2003StatutMembreDernière intervention12 mars 2009 12 mars 2009 à 03:30
salut tout le monde,
je voudrai savoir comment cette fois ci vider mes textbox quelque soit leurs emplacements. Je m'explique: quand le textbox est directement l'enfant du winform ca marche avec la methode suivante:
foreach(Control c in this.Controls)
{
if(c is TextBox)
((TextBox)c).Clear();
}
mais quand le textbox se trouve sur un tabcontrol par exemple ça ne marche plus car il n'est plus atteint . donc les Controls c traversés par le foreach n'englobent que les controls de "premier niveau". ce que je veux , c de pouvoir traverser tout les controls contenus dans le winform meme s'ils sont imbriqués l'un dans l'autre comme dans certains cas.
Merci pour votre partage et vos dons de connaissance.
blaze
WishhhMaster
Messages postés327Date d'inscriptionmardi 17 février 2004StatutMembreDernière intervention10 avril 20108 12 mars 2009 à 04:57
Tu n'as pas trop le choix, tu dois parcourir tous tes controles recursivement.
Si tu n'as pas trop de controles, tu devrais sans doute le faire manuelement.