OVH Cloud OVH Cloud

Modifier la valeur d'1 propriété d'1 autre formulaire

2 réponses
Avatar
Stéphane L.
Dans 1 formulaire père j'ai 1 image Monimage1 en .visible=false
Dans 1 sous-formulaire, je veux mettre Monimage1 en .visible=true
J'essaye ceci :
me.parentform.controls("Monimage1").visible=true
Mais bien sûr controls n'accepte qu'un index et pas le nom du controle...

Suis-je dans l'obligation de faire 1 scan de tous mes controles avec ceci ?
dim i as integer
for i=0 to me.parentform.controls.count-1
if me.parentform.controls(i).name="Monimage1" then
me.parentform.controls(i).visible=true
exit for
end if
next i

ou existe-t-il 1 autre solution bien plus rapide et bien plus simple que je
ne saurais trouver ?


--
Cordialement,

Stéphane L

2 réponses

Avatar
AlexC
Moi je te conseille ceci :

dans ton sous-formulaire crée une propriété "Owner" que tu renseignera lors
ton son instanciation exemple :

Public Class Form2
PrivateGOwner as Form1
Public WriteOnly Property Owner as Form1
Return GOwner
End Property
'Ensuite il ne te reste plus qu'à utiliser la variable GOwner pour "piloter"
Form1 exemple
Public Sub Butoon1_Click(...)handles Button1.click
GOwner.Image1.Visible = False
End Sub
(...)
End Class

Public Class Form1
(...)
Public Sub UseForm1FromForm2()
Dim MyForm as new Form2
MyForm.Owner = me
MyForm.Show
End Sub
End Class

"Stéphane L." a écrit dans le message de news:
#tQ##
Dans 1 formulaire père j'ai 1 image Monimage1 en .visibleúlse
Dans 1 sous-formulaire, je veux mettre Monimage1 en .visible=true
J'essaye ceci :
me.parentform.controls("Monimage1").visible=true
Mais bien sûr controls n'accepte qu'un index et pas le nom du controle...

Suis-je dans l'obligation de faire 1 scan de tous mes controles avec ceci


?
dim i as integer
for i=0 to me.parentform.controls.count-1
if me.parentform.controls(i).name="Monimage1" then
me.parentform.controls(i).visible=true
exit for
end if
next i

ou existe-t-il 1 autre solution bien plus rapide et bien plus simple que


je
ne saurais trouver ?


--
Cordialement,

Stéphane L




Avatar
Stéphane L.
Merci Alex, je vais regarder de ce côté (j'ai du mal à assimiler le truc par
contre)

"AlexC" <(@Anti-Spam)#(@Anti-Spam)#> a écrit
dans le message de news:%
Moi je te conseille ceci :

dans ton sous-formulaire crée une propriété "Owner" que tu renseignera


lors
ton son instanciation exemple :

Public Class Form2
PrivateGOwner as Form1
Public WriteOnly Property Owner as Form1
Return GOwner
End Property
'Ensuite il ne te reste plus qu'à utiliser la variable GOwner pour


"piloter"
Form1 exemple
Public Sub Butoon1_Click(...)handles Button1.click
GOwner.Image1.Visible = False
End Sub
(...)
End Class

Public Class Form1
(...)
Public Sub UseForm1FromForm2()
Dim MyForm as new Form2
MyForm.Owner = me
MyForm.Show
End Sub
End Class

"Stéphane L." a écrit dans le message de news:
#tQ##
> Dans 1 formulaire père j'ai 1 image Monimage1 en .visibleúlse
> Dans 1 sous-formulaire, je veux mettre Monimage1 en .visible=true
> J'essaye ceci :
> me.parentform.controls("Monimage1").visible=true
> Mais bien sûr controls n'accepte qu'un index et pas le nom du


controle...
>
> Suis-je dans l'obligation de faire 1 scan de tous mes controles avec


ceci
?
> dim i as integer
> for i=0 to me.parentform.controls.count-1
> if me.parentform.controls(i).name="Monimage1" then
> me.parentform.controls(i).visible=true
> exit for
> end if
> next i
>
> ou existe-t-il 1 autre solution bien plus rapide et bien plus simple que
je
> ne saurais trouver ?
>
>
> --
> Cordialement,
>
> Stéphane L
>
>