Bon j'ai presque honte de poser cette question mais je la pose ...
J'aimerais pouvoir utiliser un control sur une form quelconque ne
connaissant que son nom ...
de facon dynamique et sous forme de string ... je m'explique :
J'ai dans un fichier le nom d'un control présent sur ma form exemple
"MonBouton1"
je récupère donc ce nom sous forme de string ... et j'aimerais pouvoir
utiliser ce control
directement sans avoir à parcourir la collection controls de ma form
du genre ( je schématise)
au lieu de faire :
Dim Control as control
for each controle in controls
If controle.name = "MonBouton1" Then
Controle.text="Trouvé"
Exit For
End If
Next
faire un truc comme ceci ( je sais la méthode n'existe pas)
Form1.controls("MonButon1").text="Trouvé"
faut - il utiliser la réflexion pour ca ? il me semble que non car la
reflexion est utilisée sur les assembly :'(
peut - on faire kkechose du meme genre ?
des liens des solutions ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Laulau
Bonsoir,
Je pense que tu devrais regarder du côté de la méhtode FindControl de ta form ce qui devrait te donner un truc du genre : monBouton = maForm.FindControl("MonBouton1")
A +
Laulau
"Pyroa" <##> a écrit dans le message de news: %
Bonsoir,
Bon j'ai presque honte de poser cette question mais je la pose ... J'aimerais pouvoir utiliser un control sur une form quelconque ne connaissant que son nom ... de facon dynamique et sous forme de string ... je m'explique :
J'ai dans un fichier le nom d'un control présent sur ma form exemple "MonBouton1"
je récupère donc ce nom sous forme de string ... et j'aimerais pouvoir utiliser ce control directement sans avoir à parcourir la collection controls de ma form
du genre ( je schématise)
au lieu de faire :
Dim Control as control for each controle in controls If controle.name = "MonBouton1" Then Controle.text="Trouvé" Exit For End If Next
faire un truc comme ceci ( je sais la méthode n'existe pas)
Form1.controls("MonButon1").text="Trouvé"
faut - il utiliser la réflexion pour ca ? il me semble que non car la reflexion est utilisée sur les assembly :'(
peut - on faire kkechose du meme genre ? des liens des solutions ?
Merci d'avance pour vos réponses !
Pyroa
Bonsoir,
Je pense que tu devrais regarder du côté de la méhtode FindControl de ta
form ce qui devrait te donner un truc du genre :
monBouton = maForm.FindControl("MonBouton1")
A +
Laulau
"Pyroa" <#NoSpams_Pyroa@wanadoo.fr_NoSpams#> a écrit dans le message de
news: %23Xtshk38EHA.2676@TK2MSFTNGP12.phx.gbl...
Bonsoir,
Bon j'ai presque honte de poser cette question mais je la pose ...
J'aimerais pouvoir utiliser un control sur une form quelconque ne
connaissant que son nom ...
de facon dynamique et sous forme de string ... je m'explique :
J'ai dans un fichier le nom d'un control présent sur ma form exemple
"MonBouton1"
je récupère donc ce nom sous forme de string ... et j'aimerais pouvoir
utiliser ce control
directement sans avoir à parcourir la collection controls de ma form
du genre ( je schématise)
au lieu de faire :
Dim Control as control
for each controle in controls
If controle.name = "MonBouton1" Then
Controle.text="Trouvé"
Exit For
End If
Next
faire un truc comme ceci ( je sais la méthode n'existe pas)
Form1.controls("MonButon1").text="Trouvé"
faut - il utiliser la réflexion pour ca ? il me semble que non car la
reflexion est utilisée sur les assembly :'(
peut - on faire kkechose du meme genre ?
des liens des solutions ?
Je pense que tu devrais regarder du côté de la méhtode FindControl de ta form ce qui devrait te donner un truc du genre : monBouton = maForm.FindControl("MonBouton1")
A +
Laulau
"Pyroa" <##> a écrit dans le message de news: %
Bonsoir,
Bon j'ai presque honte de poser cette question mais je la pose ... J'aimerais pouvoir utiliser un control sur une form quelconque ne connaissant que son nom ... de facon dynamique et sous forme de string ... je m'explique :
J'ai dans un fichier le nom d'un control présent sur ma form exemple "MonBouton1"
je récupère donc ce nom sous forme de string ... et j'aimerais pouvoir utiliser ce control directement sans avoir à parcourir la collection controls de ma form
du genre ( je schématise)
au lieu de faire :
Dim Control as control for each controle in controls If controle.name = "MonBouton1" Then Controle.text="Trouvé" Exit For End If Next
faire un truc comme ceci ( je sais la méthode n'existe pas)
Form1.controls("MonButon1").text="Trouvé"
faut - il utiliser la réflexion pour ca ? il me semble que non car la reflexion est utilisée sur les assembly :'(
peut - on faire kkechose du meme genre ? des liens des solutions ?
Merci d'avance pour vos réponses !
Pyroa
Zoury
> Je pense que tu devrais regarder du côté de la méhtode FindControl de ta form ce qui devrait te donner un truc du genre : monBouton = maForm.FindControl("MonBouton1")
Je pense que **tu** devrais regarde de ce côté... ;O) Cette méthode n'existe pas.
Pyroa : je ne connais pas d'autre façon. Regarde cette implementation, elle cherche les contrôles récursivement afin de retrouver celui que tu cherches même s'il se trouve dans un GroupBox par exemple.. http://groups.google.com/groups?threadm=%23TJJGawSDHA.1036%40TK2MSFTNGP10.phx.gbl
-- Cordialement Yanick MVP pour Visual Basic
> Je pense que tu devrais regarder du côté de la méhtode FindControl de ta
form ce qui devrait te donner un truc du genre :
monBouton = maForm.FindControl("MonBouton1")
Je pense que **tu** devrais regarde de ce côté... ;O)
Cette méthode n'existe pas.
Pyroa : je ne connais pas d'autre façon. Regarde cette implementation, elle
cherche les contrôles récursivement afin de retrouver celui que tu cherches
même s'il se trouve dans un GroupBox par exemple..
http://groups.google.com/groups?threadm=%23TJJGawSDHA.1036%40TK2MSFTNGP10.phx.gbl
> Je pense que tu devrais regarder du côté de la méhtode FindControl de ta form ce qui devrait te donner un truc du genre : monBouton = maForm.FindControl("MonBouton1")
Je pense que **tu** devrais regarde de ce côté... ;O) Cette méthode n'existe pas.
Pyroa : je ne connais pas d'autre façon. Regarde cette implementation, elle cherche les contrôles récursivement afin de retrouver celui que tu cherches même s'il se trouve dans un GroupBox par exemple.. http://groups.google.com/groups?threadm=%23TJJGawSDHA.1036%40TK2MSFTNGP10.phx.gbl
-- Cordialement Yanick MVP pour Visual Basic
Pyroa
Le problème c'est que tous les controles présent sur la form ne sont pas forcément présent dans la collection controls ....
"Zoury" <yanick_lefebvre at hotmail dot com> a écrit dans le message de news:
Je pense que tu devrais regarder du côté de la méhtode FindControl de ta form ce qui devrait te donner un truc du genre : monBouton = maForm.FindControl("MonBouton1")
Je pense que **tu** devrais regarde de ce côté... ;O) Cette méthode n'existe pas.
Pyroa : je ne connais pas d'autre façon. Regarde cette implementation, elle cherche les contrôles récursivement afin de retrouver celui que tu cherches même s'il se trouve dans un GroupBox par exemple.. http://groups.google.com/groups?threadm=%23TJJGawSDHA.1036%40TK2MSFTNGP10.phx.gbl
-- Cordialement Yanick MVP pour Visual Basic
Le problème c'est que tous les controles présent sur la form ne sont pas
forcément présent dans la collection controls ....
"Zoury" <yanick_lefebvre at hotmail dot com> a écrit dans le message de
news: OB3hxhC9EHA.1396@tk2msftngp13.phx.gbl...
Je pense que tu devrais regarder du côté de la méhtode FindControl de ta
form ce qui devrait te donner un truc du genre :
monBouton = maForm.FindControl("MonBouton1")
Je pense que **tu** devrais regarde de ce côté... ;O)
Cette méthode n'existe pas.
Pyroa : je ne connais pas d'autre façon. Regarde cette implementation,
elle
cherche les contrôles récursivement afin de retrouver celui que tu
cherches
même s'il se trouve dans un GroupBox par exemple..
http://groups.google.com/groups?threadm=%23TJJGawSDHA.1036%40TK2MSFTNGP10.phx.gbl
Le problème c'est que tous les controles présent sur la form ne sont pas forcément présent dans la collection controls ....
"Zoury" <yanick_lefebvre at hotmail dot com> a écrit dans le message de news:
Je pense que tu devrais regarder du côté de la méhtode FindControl de ta form ce qui devrait te donner un truc du genre : monBouton = maForm.FindControl("MonBouton1")
Je pense que **tu** devrais regarde de ce côté... ;O) Cette méthode n'existe pas.
Pyroa : je ne connais pas d'autre façon. Regarde cette implementation, elle cherche les contrôles récursivement afin de retrouver celui que tu cherches même s'il se trouve dans un GroupBox par exemple.. http://groups.google.com/groups?threadm=%23TJJGawSDHA.1036%40TK2MSFTNGP10.phx.gbl
-- Cordialement Yanick MVP pour Visual Basic
Zoury
> Le problème c'est que tous les controles présent sur la form ne sont pas forcément présent dans la collection controls ....
euhm... quoi ?! :Oo
-- Cordialement Yanick MVP pour Visual Basic
> Le problème c'est que tous les controles présent sur la form ne sont pas
forcément présent dans la collection controls ....
Oui j'ai fait un parcour de la collection avec un for each :
For each Controles as control in Form1.Controls (...) Next
E tles controles comme MenuItem et StatusBar n'y etait pas ... alors qu'ils se trouvaient sur la form !! ( il y en a peut etre d'autres )
"Zoury" <yanick_lefebvre at hotmail dot com> a écrit dans le message de news: %
Le problème c'est que tous les controles présent sur la form ne sont pas forcément présent dans la collection controls ....
euhm... quoi ?! :Oo
-- Cordialement Yanick MVP pour Visual Basic
Zoury
ah oui! j'avais apperçu ton message à ce sujet mais je l'ai jamais retrouvé.. j'vais jeter un oeil là dessus demain.. ;O)
-- Cordialement Yanick MVP pour Visual Basic "Pyroa" <##> a écrit dans le message de news:uOm%
Oui j'ai fait un parcour de la collection avec un for each :
For each Controles as control in Form1.Controls (...) Next
E tles controles comme MenuItem et StatusBar n'y etait pas ... alors
qu'ils
se trouvaient sur la form !! ( il y en a peut etre d'autres )
"Zoury" <yanick_lefebvre at hotmail dot com> a écrit dans le message de news: % >> Le problème c'est que tous les controles présent sur la form ne sont
pas
>> forcément présent dans la collection controls .... > > euhm... quoi ?! :Oo > > -- > Cordialement > Yanick > MVP pour Visual Basic > >
ah oui! j'avais apperçu ton message à ce sujet mais je l'ai jamais
retrouvé.. j'vais jeter un oeil là dessus demain.. ;O)
--
Cordialement
Yanick
MVP pour Visual Basic
"Pyroa" <#NoSpams_Pyroa@wanadoo.fr_NoSpams#> a écrit dans le message de
news:uOm%23jcD9EHA.2900@TK2MSFTNGP09.phx.gbl...
Oui j'ai fait un parcour de la collection avec un for each :
For each Controles as control in Form1.Controls
(...)
Next
E tles controles comme MenuItem et StatusBar n'y etait pas ... alors
qu'ils
se trouvaient sur la form !! ( il y en a peut etre d'autres )
"Zoury" <yanick_lefebvre at hotmail dot com> a écrit dans le message de
news: %23NRiU4C9EHA.2316@TK2MSFTNGP15.phx.gbl...
>> Le problème c'est que tous les controles présent sur la form ne sont
pas
>> forcément présent dans la collection controls ....
>
> euhm... quoi ?! :Oo
>
> --
> Cordialement
> Yanick
> MVP pour Visual Basic
>
>
ah oui! j'avais apperçu ton message à ce sujet mais je l'ai jamais retrouvé.. j'vais jeter un oeil là dessus demain.. ;O)
-- Cordialement Yanick MVP pour Visual Basic "Pyroa" <##> a écrit dans le message de news:uOm%
Oui j'ai fait un parcour de la collection avec un for each :
For each Controles as control in Form1.Controls (...) Next
E tles controles comme MenuItem et StatusBar n'y etait pas ... alors
qu'ils
se trouvaient sur la form !! ( il y en a peut etre d'autres )
"Zoury" <yanick_lefebvre at hotmail dot com> a écrit dans le message de news: % >> Le problème c'est que tous les controles présent sur la form ne sont
pas
>> forcément présent dans la collection controls .... > > euhm... quoi ?! :Oo > > -- > Cordialement > Yanick > MVP pour Visual Basic > >
Zoury
ok j'ai fait un test.. J'ai créer un formulaire vide, je lui ai ajouté un MainMenu (avec quelques items dedans), une StatusBar, un Bouton et un TextBox.
voici une section du code généré par Windows (le bout qui nous intéresse) : '*** ' 'Form1 ' Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13) Me.ClientSize = New System.Drawing.Size(576, 374) Me.Controls.Add(Me.StatusBar1) Me.Controls.Add(Me.TextBox1) Me.Controls.Add(Me.Button1) Me.Menu = Me.MainMenu1 Me.Name = "Form1" Me.Text = "Form1" Me.ResumeLayout(False) '***
on voit que tous les contrôles sauf les menus se retrouvent dans la collection de contrôles. Tu pourrais donc une fonction semblable à celle d'Herfried qui te permettrait de boucler la collection de MenuItem du MainMenu si le nom demandé n'a pas été trouver dans la collection de contrôle.
-- Cordialement Yanick MVP pour Visual Basic "Pyroa" <##> a écrit dans le message de news:uOm%
Oui j'ai fait un parcour de la collection avec un for each :
For each Controles as control in Form1.Controls (...) Next
E tles controles comme MenuItem et StatusBar n'y etait pas ... alors
qu'ils
se trouvaient sur la form !! ( il y en a peut etre d'autres )
"Zoury" <yanick_lefebvre at hotmail dot com> a écrit dans le message de news: % >> Le problème c'est que tous les controles présent sur la form ne sont
pas
>> forcément présent dans la collection controls .... > > euhm... quoi ?! :Oo > > -- > Cordialement > Yanick > MVP pour Visual Basic > >
ok j'ai fait un test.. J'ai créer un formulaire vide, je lui ai ajouté un
MainMenu (avec quelques items dedans), une StatusBar, un Bouton et un
TextBox.
voici une section du code généré par Windows (le bout qui nous intéresse) :
'***
'
'Form1
'
Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13)
Me.ClientSize = New System.Drawing.Size(576, 374)
Me.Controls.Add(Me.StatusBar1)
Me.Controls.Add(Me.TextBox1)
Me.Controls.Add(Me.Button1)
Me.Menu = Me.MainMenu1
Me.Name = "Form1"
Me.Text = "Form1"
Me.ResumeLayout(False)
'***
on voit que tous les contrôles sauf les menus se retrouvent dans la
collection de contrôles.
Tu pourrais donc une fonction semblable à celle d'Herfried qui te
permettrait de boucler la collection de MenuItem du MainMenu si le nom
demandé n'a pas été trouver dans la collection de contrôle.
--
Cordialement
Yanick
MVP pour Visual Basic
"Pyroa" <#NoSpams_Pyroa@wanadoo.fr_NoSpams#> a écrit dans le message de
news:uOm%23jcD9EHA.2900@TK2MSFTNGP09.phx.gbl...
Oui j'ai fait un parcour de la collection avec un for each :
For each Controles as control in Form1.Controls
(...)
Next
E tles controles comme MenuItem et StatusBar n'y etait pas ... alors
qu'ils
se trouvaient sur la form !! ( il y en a peut etre d'autres )
"Zoury" <yanick_lefebvre at hotmail dot com> a écrit dans le message de
news: %23NRiU4C9EHA.2316@TK2MSFTNGP15.phx.gbl...
>> Le problème c'est que tous les controles présent sur la form ne sont
pas
>> forcément présent dans la collection controls ....
>
> euhm... quoi ?! :Oo
>
> --
> Cordialement
> Yanick
> MVP pour Visual Basic
>
>
ok j'ai fait un test.. J'ai créer un formulaire vide, je lui ai ajouté un MainMenu (avec quelques items dedans), une StatusBar, un Bouton et un TextBox.
voici une section du code généré par Windows (le bout qui nous intéresse) : '*** ' 'Form1 ' Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13) Me.ClientSize = New System.Drawing.Size(576, 374) Me.Controls.Add(Me.StatusBar1) Me.Controls.Add(Me.TextBox1) Me.Controls.Add(Me.Button1) Me.Menu = Me.MainMenu1 Me.Name = "Form1" Me.Text = "Form1" Me.ResumeLayout(False) '***
on voit que tous les contrôles sauf les menus se retrouvent dans la collection de contrôles. Tu pourrais donc une fonction semblable à celle d'Herfried qui te permettrait de boucler la collection de MenuItem du MainMenu si le nom demandé n'a pas été trouver dans la collection de contrôle.
-- Cordialement Yanick MVP pour Visual Basic "Pyroa" <##> a écrit dans le message de news:uOm%
Oui j'ai fait un parcour de la collection avec un for each :
For each Controles as control in Form1.Controls (...) Next
E tles controles comme MenuItem et StatusBar n'y etait pas ... alors
qu'ils
se trouvaient sur la form !! ( il y en a peut etre d'autres )
"Zoury" <yanick_lefebvre at hotmail dot com> a écrit dans le message de news: % >> Le problème c'est que tous les controles présent sur la form ne sont
pas
>> forcément présent dans la collection controls .... > > euhm... quoi ?! :Oo > > -- > Cordialement > Yanick > MVP pour Visual Basic > >