Fournir aux utilisateurs des contrôles parmi lesquels choisir
La plupart des applications doivent offrir à l'utilisateur des choix, comme une simple option « Oui/Non » ou un choix parmi une liste de centaines de possibilités. Visual Basic comprend plusieurs contrôles standard pour fournir des sélections. Le tableau suivant résume ces contrôles et leurs utilisations.
Sélectionnez une seule option avec CheckBox
CheckBox indique si un état spécifique est sélectionné (on) ou effacé (off). L'utilisation d'un CheckBox dans une application offre à l'utilisateur un choix « Vrai/Faux » ou « Oui/non ». Étant donné que les CheckBox fonctionnent indépendamment les unes des autres, les utilisateurs peuvent sélectionner autant de CheckBox qu’ils le souhaitent en même temps. Par exemple, dans la figure 3.9, les caractères gras et italiques peuvent être sélectionnés.
Application CheckBox
Cet exemple utilise un CheckBox pour déterminer si le texte doit être affiché en police normale ou en italique. Pour une version fonctionnelle de cet exemple, consultez Check.frm dans l'exemple d'application Controls.vbp. Comme le montre la figure 3.10, cette application possède un TextBox, un Label, un CommandButton et deux CheckBox.
Le tableau suivant répertorie les paramètres de propriété des objets de l'application.
Lorsque le gras ou l’italique est sélectionné, la propriété Value du CheckBox est définie sur 1 et sur 0 lorsqu’elle n’est pas sélectionnée. La valeur par défaut est 0, donc à moins que vous ne modifiiez la propriété Value, le CheckBox ne sera pas sélectionné lors de son premier affichage. Vous pouvez utiliser les constantes vbChecked et vbUnchecked pour représenter les valeurs 1 et 0.
événement dans l'application de case à cocher
Lorsqu’un CheckBox est cliqué, l’événement Click du CheckBox se produit. Cette procédure événementielle teste si CheckBox est sélectionné (c’est-à-dire si Value=vbChecked). Si cette option est sélectionnée, convertit le texte en gras ou en italique en définissant la propriété Bold ou Italic de l'objet Font renvoyé par la propriété Font de TextBox.
PRivateSubchkBold_Click()
IfChkBold.Value=vbCheckedThen 'Si sélectionné.
txtDisplay.Font.Bold=True
Sinon 'Si non sélectionné.
txtDisplay.Font.Bold=False
FinSi
FinSub
PrivateSubchkItalic_Click()
IfChkItalic.Value=vbCheckedThen 'Si sélectionné.
txtDisplay.Font.Italic=True
Sinon 'Si non sélectionné.
txtDisplay.Font.Italic=False
FinSi
FinSub
Options de groupe à l’aide des boutons d’option
Les boutons d'option représentent un ensemble de deux choix ou plus proposés à l'utilisateur. Cependant, contrairement à CheckBox, les boutons d'option fonctionnent toujours dans le cadre d'un groupe ; par conséquent, la sélection d'un bouton d'option efface immédiatement les autres boutons du groupe. Définissez un groupe de boutons d'option qui indique à l'utilisateur : « Il s'agit d'un ensemble de choix, choisissez-en un et un seul. »
Par exemple, dans le groupe de boutons d'option illustré à la figure 3.11, l'utilisateur ne peut sélectionner qu'un seul des trois boutons d'option.
Créer un groupe de boutons d'option
Tous les boutons d'option placés directement dans un formulaire (c'est-à-dire pas dans un Frame ou PictureBox) forment un groupe. Si vous souhaitez créer d'autres groupes de boutons d'option, vous devez en placer certains dans un Frame ou un PictureBox.
Tous les boutons d’option d’un Frame donné forment un groupe distinct, tout comme tous les boutons d’option d’un PictureBox. Lorsque vous utilisez cette méthode pour générer un groupe indépendant, vous devez d’abord dessiner un cadre ou une PictureBox, puis dessiner les boutons d’option à l’intérieur. La figure 3.12 montre un formulaire avec deux groupes de boutons d'option.
Une fois qu'un groupe de boutons d'option est dessiné dans le cadre, l'utilisateur ne peut sélectionner qu'un seul bouton d'option dans le groupe. Pour regrouper les contrôles dans un cadre, procédez comme suit :
1. Sélectionnez le champ Frame dans la "Boîte à outils" et dessinez le Frame sur le formulaire.
2. Sélectionnez le contrôle OptionButton dans la "Boîte à outils" et dessinez le contrôle dans le Frame.
3. Si vous souhaitez également ajouter des boutons d'option au cadre, répétez l'étape 2. Dessinez d'abord le cadre, puis dessinez chaque contrôle sur le cadre, de sorte que lorsque le cadre est déplacé, les contrôles se déplacent ensemble. Si vous déplacez un contrôle existant vers le Frame, le contrôle ne se déplacera pas avec le Frame.
Notez que si vous regroupez des contrôles existants dans un cadre, vous pouvez sélectionner ces contrôles, puis les couper et les coller dans le contrôle Frame ou Picture.
Conteneur de contrôle
Lorsque le contrôle est un objet indépendant, il existe une sorte de relation parent-enfant entre le formulaire et le contrôle. La figure 3.12 montre comment les boutons d'option peuvent être contenus dans un formulaire ou un contrôle Frame.
Pour comprendre le concept de conteneurs, imaginez d'abord que tous les contrôles sont des enfants du formulaire dans lequel ils résident. En fait, la plupart des contrôles prennent en charge la propriété Parent en lecture seule, dont la valeur correspond au formulaire dans lequel se trouve le contrôle. En tant qu'enfant, un contrôle détermine sa position sur le formulaire parent. Les propriétés Left et Top du contrôle sont relatives au formulaire parent et le contrôle ne peut pas dépasser les limites du formulaire parent. Lorsque le conteneur est déplacé, le contrôle est également déplacé, de sorte que la position relative du contrôle et du conteneur reste inchangée (c'est-à-dire que les propriétés Left et Top du contrôle restent inchangées).
Sélectionner ou désactiver les boutons d'option
Un bouton d'option peut être sélectionné des manières suivantes :
1.Cliquez sur le bouton d'option avec votre souris pendant l'exécution.
2. Utilisez la touche Tab pour localiser le groupe de boutons d'option, puis utilisez les touches fléchées (touches fléchées) pour localiser le bouton d'option dans le groupe.
3. Définissez sa propriété Value sur True à l'aide du code : optChoice.Value=True
4. Utilisez la touche de raccourci spécifiée dans le titre de l'étiquette.
5. Pour faire d'un bouton le bouton par défaut dans le groupe de boutons d'option, définissez simplement sa propriété Value sur True au moment de la conception. Il reste sélectionné jusqu'à ce que l'utilisateur sélectionne un bouton d'option différent ou le modifie avec le code.
Pour désactiver un bouton d'option, définissez sa propriété Enabled sur False. Lorsque le programme est en cours d'exécution, si ce bouton d'option devient gris, cela signifie que ce bouton d'option ne peut pas être sélectionné.
Application Options
Le formulaire illustré à la figure 3.13 utilise des boutons d'option pour sélectionner le type de processeur et le système d'exploitation d'un ordinateur. Lorsque l'utilisateur sélectionne un bouton d'option dans le groupe, le titre de l'étiquette change pour refléter la sélection actuelle. Pour une version fonctionnelle de cet exemple, consultez Options.frm dans l'exemple d'application Controls.vbp.
Le tableau suivant répertorie les paramètres des propriétés d'objet dans l'application.
Événements dans l'application Options
L'application d'options répond aux événements comme suit :
Les événements Click des trois premiers boutons d'option attribuent une description correspondante à la variable chaîne au niveau du formulaire strComputer.
Les événements Click des deux derniers boutons d'option attribuent une description correspondante à la deuxième variable strSystem au niveau du formulaire.
La clé de cette méthode consiste à utiliser ces deux variables au niveau du formulaire, strComputer et strSystem. Ces deux variables ont des valeurs de chaîne différentes et la sélection finale du bouton d'option dépend de ces valeurs.
Chaque fois qu'un nouveau bouton d'option est sélectionné, le code de son événement Click met à jour la valeur de la variable correspondante.
PrivateSubopt586_Click()
strComputer=Pentium
AppelAffichageCaption
FinSub
Il appelle ensuite une procédure appelée DisplayCaption, qui concatène les deux variables et modifie la propriété Caption de Label.
Sous-DisplayCaption()
lblDisplay.Caption=Vous avez sélectionné une&
_strComputer&running&strSystem
FinSub
Le sous-programme est utilisé car le processus de modification de la propriété Caption est fondamentalement le même pour les cinq boutons d'option, sauf que la valeur de la variable varie en fonction de la situation. Cela évite de dupliquer le même code dans chaque événement Click.
Les détails des variables et des sous-processus sont abordés dans le chapitre 5, « Bases de la programmation ».
Utiliser ListBox et ComboBox
ListBox et ComboBox offrent des choix aux utilisateurs. Par défaut, les options sont affichées dans une seule colonne verticale, mais peuvent également être définies sur plusieurs colonnes. Si le nombre d'éléments dépasse le nombre que la ComboBox ou la ListBox peut afficher, une ScrollBar apparaît automatiquement sur le contrôle. L'utilisateur peut ensuite faire défiler la liste vers le haut, le bas, la gauche et la droite. La figure 3.14 montre une ListBox à une seule colonne.
ComboBox a les fonctions de TextBox et de ListBox. Ce contrôle permet à l'utilisateur d'effectuer des sélections en tapant du texte ou en sélectionnant des éléments dans une liste. La figure 3.15 montre une ComboBox.
Contrairement à d'autres contrôles qui contiennent une valeur unique, comme la propriété Caption d'un Label ou la propriété de texte d'un TextBox, ListBox et ComboBox contiennent plusieurs valeurs ou collections de valeurs. Utilisez des méthodes intégrées pour ajouter, supprimer et conserver des valeurs dans une collection au moment de l'exécution. Pour ajouter plusieurs éléments dans une ListBox nommée List1, le code est le suivant : List1.AddItemParis
List1.AddItemNewYork
List1.AddItemSanFrancisco
ListBox et ComboBox sont des moyens efficaces pour offrir aux utilisateurs un grand nombre d'options dans un espace limité.
Pour plus d'informations sur les contrôles ListBox et ComboBox, consultez le chapitre 7, « Utilisation des contrôles standard de Visual Basic ».
->