jeudi 1 avril 2010

Comment ajouter dynamiquement des contrôles dans un formulaire ?

Il peut arriver que vous ne connaissiez pas à l'avance le nombre de contrôles dont vos utilisateurs auront besoin dans un formulaire.

C'est par exemple le cas lorsque vous devez présenter des informations tabulaire à vos utilisateurs, comme dans cet exemple :

Certes il existe un contrôle datagrid, mais son utilisation n'est pas toujours possible, ou peut se révéler très lourde.

Une solution consiste à ajouter dynamiquement des contrôles :

'On déclare une liste d'objets "TextBox"
Dim textBoxList As New List(Of TextBox)

Dim x As Integer

For x = 0 To 4
 'On ajoute une nouvelle TextBox dans la liste
 textBoxList.Add(New TextBox)

 'On dimentionne et positionne la TextBox qui vient d'être ajoutée
 With textBoxList.Item(textBoxList.Count - 1)
  .Height = 100
  .Width = 30
  .Location = New System.Drawing.Point(10, textBoxList.Count * 30)
 End With

 'Et on ajoute cette TextBox dans notre formulaire
 Controls.AddRange(New System.Windows.Forms.Control() {textBoxList(textBoxList.Count - 1)})
Next

Naturellement si comme dans l'image ci-dessus chaque ligne est composée de plusieurs contrôles, vous prendrez au préalable le soin de créer une classe chargée de gérer ces groupes de contrôles.

Aucun commentaire:

Enregistrer un commentaire