Salut à tous, voila mon pb : j'ai créé dynamiquement un certain nb de
textboxes que j'ai appelées tb_1_1, tb1_2, ...
jusque ici tout va bien, mais le pb se pose quand je veux selectionner une
textbox parmi celles du formulaire (que ns appelerons "formulaire"
;o) ) -> VB.net me crie dessus quand je mets un truc du genre
formulaire.controls.items("tb_3_4").text="bonjour" en me disant à juste
titre qu'il faut un ID du controle; j'essaie alors de contourner le pb en
mettant un titi = Me.Controls.GetChildIndex("tb_3_4"), mais là il me répond
qu'il faut un nom d'objet et pas une chaine de caracteres !!!
pourriez vous me donner la fonction qui permet de recupérer l'identifiant
d'un objet à partir de son nom ?
franchement je ne savais pas que VB.NEt te demandait des trucs comme ca ! Il ne suffit pas de faire nmtextbox1.text = "Bonjour" ???
Francois Muller
"" a écrit dans le message de news: 431dfeae$0$10308$
pourriez vous me donner la fonction qui permet de recupérer l'identifiant d'un objet à partir de son nom ?
Faire un boucle dans la collection "controls" du container en question et tester la propriété Name Exemple "primitif" :
function findcontrol(MyContainer as Control, nameToFind as string) as control for each Control C in MyContainer.Controls if c.Name = nameToFind then return c endif next end function
Bien sur,on peut améliorer les chose au cas où un des controles est lui même container (style un Panel dans une Form) avec un appel récursif pour les controle implémentant IContainer, du style :
function FindControl(MyContainer as Control, nameToFind as string) as control for each Control C in MyContainer.Controls if c.Name = nameToFind then return c else if C is IContainer then return FindControl(C, nameToFind) endif endif next end function
F.
"nicopil@mi" <nicopilami_nospam@free.fr> a écrit dans le message de news:
431dfeae$0$10308$626a14ce@news.free.fr...
pourriez vous me donner la fonction qui permet de recupérer l'identifiant
d'un objet à partir de son nom ?
Faire un boucle dans la collection "controls" du container en question et
tester la propriété Name
Exemple "primitif" :
function findcontrol(MyContainer as Control, nameToFind as string) as
control
for each Control C in MyContainer.Controls
if c.Name = nameToFind then
return c
endif
next
end function
Bien sur,on peut améliorer les chose au cas où un des controles est lui même
container (style un Panel dans une Form) avec un appel récursif pour les
controle implémentant IContainer, du style :
function FindControl(MyContainer as Control, nameToFind as string) as
control
for each Control C in MyContainer.Controls
if c.Name = nameToFind then
return c
else
if C is IContainer then
return FindControl(C, nameToFind)
endif
endif
next
end function
"" a écrit dans le message de news: 431dfeae$0$10308$
pourriez vous me donner la fonction qui permet de recupérer l'identifiant d'un objet à partir de son nom ?
Faire un boucle dans la collection "controls" du container en question et tester la propriété Name Exemple "primitif" :
function findcontrol(MyContainer as Control, nameToFind as string) as control for each Control C in MyContainer.Controls if c.Name = nameToFind then return c endif next end function
Bien sur,on peut améliorer les chose au cas où un des controles est lui même container (style un Panel dans une Form) avec un appel récursif pour les controle implémentant IContainer, du style :
function FindControl(MyContainer as Control, nameToFind as string) as control for each Control C in MyContainer.Controls if c.Name = nameToFind then return c else if C is IContainer then return FindControl(C, nameToFind) endif endif next end function
F.
nicopil
"aitoz" a écrit dans le message de news:
Bonsoir,
franchement je ne savais pas que VB.NEt te demandait des trucs comme ca ! Il ne suffit pas de faire nmtextbox1.text = "Bonjour" ???
bah non, car nmtextbox1 serait une chaine de car, pas un objet; j'ai finalement fait une fction qui compare le nom de tous les objets du formulaire avec la chaine de car voulue, et qui renvoit l'objet trouvé. Ca marche, mais c'est pas tres joli !
Si vous avez une solution plus élégante...
bye Nico
bye Nico
"aitoz" <laurent9@hotmail.com> a écrit dans le message de news:
e58MLWysFHA.304@TK2MSFTNGP11.phx.gbl...
Bonsoir,
franchement je ne savais pas que VB.NEt te demandait des trucs comme ca !
Il ne suffit pas de faire nmtextbox1.text = "Bonjour"
???
bah non, car nmtextbox1 serait une chaine de car, pas un objet; j'ai
finalement fait une fction qui compare le nom de tous les objets du
formulaire avec la chaine de car voulue, et qui renvoit l'objet trouvé. Ca
marche, mais c'est pas tres joli !
franchement je ne savais pas que VB.NEt te demandait des trucs comme ca ! Il ne suffit pas de faire nmtextbox1.text = "Bonjour" ???
bah non, car nmtextbox1 serait une chaine de car, pas un objet; j'ai finalement fait une fction qui compare le nom de tous les objets du formulaire avec la chaine de car voulue, et qui renvoit l'objet trouvé. Ca marche, mais c'est pas tres joli !