OVH Cloud OVH Cloud

Objets sur une feuille WINDOWS

1 réponse
Avatar
Daniel
Je souhaite pouvoir parcourir les objets d'une feuille=20
WINDOWS
et modifier la hauteur des TEXBOX, des bouttons par=20
programme, pour obtenir
une hauteur uniforme des champs de saisie, ...
Ci-joint =E9bauche d'un PGM VB.NET
Comment =E7=E0 marche ? Merci pour le tuyau !
Daniel

Sub Remapping()
Dim FeuilleCourante As System.Windows.Forms.Form =3D=20
System.Windows.Forms.Form.ActiveForm
Dim Incr=E9ment As Integer
For Incr=E9ment =3D 0 To FeuilleCourante.Controls.Count - 1
' Recherche tous les types de contr=F4le :
select case FeuilleCourante.Controls(Incr=E9ment)
case ?(Zone TextBox)
FeuilleCourante.Controls(Incr=E9ment).height =3D 100
=09
case ?(Boutton de commande)
FeuilleCourante.Controls(Incr=E9ment).height =3D 120
=09
case else=09
End Select=20
Next =20
End Sub

1 réponse

Avatar
RAVAILLE James
Bonjour,

Pour ce que vous souhaitez faire, il est intéressant d'utiliser la structure itérative for each 'item'in 'collection'.
Dans notre cas 'item' est un objet de type System.Windows.Control (un contrôle Windows) et la collection est la liste des contrôles contenues dans la Form, implémentée par Me.Controls.
Pour chacun des contrôles de la Form, en fonction du type, on peut effectuer divers traitements tels que la modification de la longueur du contrôle (propriété Width), la hauteur (propriété Height)...

Voici un exemple de code :
Dim oCtrl As Control

For Each oCtrl In Me.Controls
If (TypeOf oCtrl Is TextBox) Then
oCtrl.Width = 100
End If
Next

Précision : si dans cet exemple, vous ne souhaitez pas modifier tous les contrôles TextBox de la Form, alors il est intéressant de préfixer leur nom par une contante et d'ajouter un test supplémentaire sur le nom :
If ((TypeOf oCtrl Is TextBox) And (oCtrl.Name.Substring(0, 3) = "Txt")) Then
oCtrl.Width = 200
End If

Ainsi, uniquement les contrôles TextBox de la Form dont le nom commence par Txt seront traités.

A+.
--
James RAVAILLE.


"Daniel" a écrit :

Je souhaite pouvoir parcourir les objets d'une feuille
WINDOWS
et modifier la hauteur des TEXBOX, des bouttons par
programme, pour obtenir
une hauteur uniforme des champs de saisie, ...
Ci-joint ébauche d'un PGM VB.NET
Comment çà marche ? Merci pour le tuyau !
Daniel

Sub Remapping()
Dim FeuilleCourante As System.Windows.Forms.Form =
System.Windows.Forms.Form.ActiveForm
Dim Incrément As Integer
For Incrément = 0 To FeuilleCourante.Controls.Count - 1
' Recherche tous les types de contrôle :
select case FeuilleCourante.Controls(Incrément)
case ?(Zone TextBox)
FeuilleCourante.Controls(Incrément).height = 100

case ?(Boutton de commande)
FeuilleCourante.Controls(Incrément).height = 120

case else
End Select
Next
End Sub