OVH Cloud OVH Cloud

probleme avec les modules

2 réponses
Avatar
Titeuf
bonsoir,

j'ai un module
à l'intérieur je voudrais faire une fonction qui changerais par exemple la
couleur de chaque label dans ma feuille form1
mais je n'arrive pas à voir les objets que contient form1

car en vb6 c'est simple :

Dim ctl As Control

For Each ctl In form1.Controls
If TypeOf ctl Is Label Then
Dim lab As Label
Set lab = ctl
lab.ForeColor = colLabel
End If

je précise que ma fonction doit etre dans un module !
quelqu'un serait-il comment faire en .net merci ?

2 réponses

Avatar
Etudiant
Titeuf a écrit :
bonsoir,

j'ai un module
à l'intérieur je voudrais faire une fonction qui changerais par exemple la
couleur de chaque label dans ma feuille form1
mais je n'arrive pas à voir les objets que contient form1

car en vb6 c'est simple :

Dim ctl As Control

For Each ctl In form1.Controls
If TypeOf ctl Is Label Then
Dim lab As Label
Set lab = ctl
lab.ForeColor = colLabel
End If

je précise que ma fonction doit etre dans un module !
quelqu'un serait-il comment faire en .net merci ?





dans le parametre tu peut passer ta form

Private sub Test(MaForm)
Avatar
Zoury
Salut!

> For Each ctl In form1.Controls


<snip>
dans le parametre tu peut passer ta form




En VB6, Form1 représentait à la fois une classe et une instance de classe de
Type Form1.

En .NET, c'est toi qui créer l'instance de classe (on pouvait aussi le faire
en VB6) :
'**
Dim frm As Form1
frm = New Form1
'**

maintenent il te reste à passer cette instance à ta fonction comme te l'as
indiqué notre Etudiant :O)
'***
Public Sub Test(ByVal frm As Form, _
ByVal col As Color)

Dim ctl As Control

For Each ctl In frm.Controls
If (ctl.GetType() Is GetType(Label)) Then
DirectCast(ctl, Label).ForeColor = col
End If
Next ctl

End Sub
'***

--
Cordialement
Yanick
MVP pour Visual Basic