sub test()
dim I as Integer
for i = 1 to 10
Modifie "moncontrole" & i
next i
end sub
Sub modifie (uncontrole as ????)
me.uncontrole.visible = false
end sub
Merci
Fabien
Pourquoi n'as tu pas utilisé un tableau de controles (avec index) ?
Y'a t'il une raison précise, ou alors tu ne connais peut etre pas ?
Car ça parait la solution la plus appropriée, tu aurais des controles du
style Moncontrole[i]
et tu n'aura plus qu'à faire un :
For i=1 to 10
Modifie( Moncontrole[i] )
Next i
dans VB 6 il est possible de mettre des controles indicés( donc
obligatoirement de même type) qui te permettront de faire ce que tu veux
for i = 0 to MonControl.count
MonControl(I).visible=false ' par exemple
MonControle.text = vbnullstring ' si c'st un textbox..
Next I
Driss
"Fabien" <Urbania...@Neuf.fr> a écrit dans le message de
news:46125e0c$0$25910$ba4a...@news.orange.fr...
Fabien wrote:
> Honte a moi je n'avais pas précisé que je travaillais avec visual
> basic express 2005.
Dans ce cas, revoyez la gestion des événements. Dans VB .Net, vous pouvez
affecter dynamiquement un gestionnaire d'événements à un événement
particulier en utilisant la fonction AddHandler. Il suffit donc de faire
pointer avec AddHandler l'événement d'un type donné pour chaque contrôle
considéré vers une routine de traitement unique. La différenciation se
faisant par l'argument sender qui est la référence sur le contrôle qui a
généré l'événement:
AddHandler Button1.Click, AddressOf myClickHandler
AddHandler Button2.Click, AddressOf myClickHandler
AddHandler Button3.Click, AddressOf myClickHandler
Private Sub myClickHandler(ByVal sender As System.Object, ByVal e As
System.EventArgs)
MsgBox("Event Handled!")
End Sub
Dans cet exemple, tous les événements Click pour les 3 boutons sont traités
par la même routine. Vous savez de quel bouton il s'agit en regardant
l'argument sender.
Vous pouvez "débrancher" un événement d'une routine en utilisant
RemoveHandler.
Avec ce mécanisme, les control arrays de VB6 dont on a parlé plus haut ne
servent plus à rien.
--
Patrick Philippot - Microsoft MVP
MainSoft Consulting Services
www.mainsoft.fr
Ou bien
Private Sub myClickHandler(ByVal sender As System.Object, _
ByVal e As System.EventArgs) _
Handles Button1.Click, Button2.Click, Button3.Click
Si les boutons ne sont pas créés dynamiquement.
Mais je ne suis pas sûr que c'est exactement le problème de Fabien.
Pour récupérer un contrôle par son nom, il peut aussi écrire :
Conteneur.Controls("Button1")
En supposant que Conteneur est l'objet contenant les boutons.
La Form par exemple ce qui donne : Me.Controls("Button1")
Le conteneur peut-être aussi un GroupBox ou un Panel :
Me.Panel1.Controls("Button1")
Syntaxe par ailleurs utilisable aussi en VB6 si mes souvenirs sont bons.
Si les propriétés à modifier ne sont pas communes à tous les contrôles,
il faudra peut-être faire un cast :
Dim b as Button = Me.Controls("Button1")
b.UnePropriétéSpécifiqueDuBouton
--
Fred
http://www.cerber mail.com/?3kA6ftaCvT (enlever l'espace)
> Merci a tout les deux du temps passé ;-)
Merci pour le retour.
J'en profite pour compléter mon message précédent.
Pour vb 2005 il est préférable d'aller sur :
microsoft.public.fr.dotnet.vb
(Le langage vb.NET)
microsoft.public.fr.dotnet
(Le framework)
microsoft.public.fr.dotnet.adonet
(Accès aux données)
microsoft.public.fr.dotnet.visualstudio
(L'environnement de développement)