image
image
image
image
image
 
   
Assistance Fonction Excel
assistance Excel
assistance Excel
assistance Excel
 
Fiches Vb groupe de controles
 
 

Les groupes de contrôles

Jusqu'à présent, nous avons toujours considéré que chaque contrôle était un objet complètement indépendant de ses congénères. Cela se manifestait de deux manières :

  • Lors de leur création, nous allions toujours chercher l’objet dans la boîte à outils, en nous abstenant soigneusement de procéder à des copier coller.
  • Par conséquent, chaque objet possédait une propriété Name bien à lui, qui nous permettait de le désigner sans ambiguïté en écrivant le code. Et du coup, chaque objet possédait ses propres procédures événementielles, distinctes de celles liées aux autres objets.

Mais cette stratégie peut induire une lourdeur. Lorsque plusieurs objets de même type remplissent des tâches voisines, on se retrouve avec une flopée de procédures événementielles qui sont semblables.

La création d’un groupe de contrôles a pour but d’alléger tout ceci.

Lors de la création des contrôles (mettons, une série de quatre cases à cocher), on procède dorénavant par copier-coller, en prenant soin, s'il s'agit de cases d'options, que le collage s’effectue bien au sein du Frame (sinon, elles ne marcheront pas correctement ensemble). A la question "souhaitez-vous créer un groupe de contrôles?", on répond par l’affirmative.

Dès lors, les quatre objets ainsi créés seront en fait des membres d’un même groupe. Cela signifie que ces quatre objets porteront le même nom (Name) mais affublé d’un Index qui servira à les identifier individuellement. L’Index est une propriété de tout élément d'un groupe de contrôles, définissant son indice

Donc, résumons nous.

Si on a créé un groupe de 4 contrôles de classe Checkbox le nom par défaut de ce groupe sera Check1. Rebaptisons-le CaseCarrée pour plus de clarté. On aura alors CaseCarrée(0), car l'Index commence à zéro comme pour tout tableau qui se respecte, CaseCarrée(1), CaseCarrée(2) et CaseCarrée(3).

Si on a un traitement à effectuer sur les quatre cases, on pourra dorénavant écrire une boucle, par exemple pour décocher tout ça :

For i = 0 to 3
CaseCarrée(i).Value = 0
Next i

Déjà, on se marre bien. Mais c’est encore plus rigolo quand on crée la procédure associée à ce groupe. Cela produit un intitulé du genre :

Private Sub CaseCarrée_Click (Index as Integer)

End Sub

Eh oui, vous avez bien vu. Cela signifie que dorénavant, pour un événement donné, il n’y a plus qu’une seule procédure pour l’ensemble des contrôles du groupe !

Quant à la variable Index, dont vous voyez que Visual Basic la crée automatiquement en tant que paramètre en entrée de cette procédure, elle contient à chaque exécution de la procédure, l'indice de l'élément du groupe qui vient de déclencher l'événement.

Ainsi par exemple, si au sein de cette procédure, on a besoin de savoir quelle case a été cliquée, il suffit de tester la variable Index, qui, en l'occurrence, vous l’aurez deviné, peut valoir de zéro à trois.

A noter qu'Index est ici une simple variable, à ne pas confondre avec la propriété Index des éléments des groupes de contrôles. Donc, si ce nom de variable vous semble trop lourd, rien ne vous interdit de le modifier.

Formulons tout cela d'une traite : Index est le nom par défaut du paramètre en entrée pour la procédure événementielle, paramètre qui prend à chaque exécution la valeur de la propriété Index du membre du groupe qui a déclenché cette exécution.

Avec tout cela, certains programmes vont pouvoir s'alléger considérablement.

 
 
 
Vers l'index des fiches VB
 

 
image
image