Cliquez sur un bouton pour effectuer une action
Le moyen le plus simple pour les utilisateurs d’interagir avec votre application est de leur fournir un bouton. Vous pouvez utiliser le contrôle CommandButton fourni par Visual Basic ou un contrôle Image contenant des graphiques, tels qu'une icône, pour créer votre propre « bouton ».
Utilisation du bouton de commande
La plupart des applications Visual Basic disposent de CommandButtons qui permettent aux utilisateurs d'effectuer des actions en appuyant simplement sur le bouton. Lorsque l'utilisateur sélectionne un bouton, non seulement l'action a lieu, mais le bouton semble être enfoncé et relâché. Chaque fois que l'utilisateur clique sur le bouton, la procédure événementielle Click est appelée. Écrivez du code dans la procédure événementielle Click pour effectuer l’action souhaitée.
Il existe de nombreuses façons de sélectionner le CommandButton pendant l'exécution du programme :
Cliquez sur le bouton avec la souris.
Appuyez sur la touche TAB pour déplacer le focus sur le bouton correspondant, puis appuyez sur la touche ESPACE ou ENTRÉE pour sélectionner le bouton. Voir « Présentation de Focus » plus loin dans ce chapitre.
Appuyez sur la touche de raccourci CommandButton (caractère souligné ALT).
Définissez la propriété Value du CommandButton sur True dans le code. cmdClose.Value=Vrai
Appelez l’événement Click du CommandButton dans le code. cmdClose_Click
Si CommandButton est le bouton de commande par défaut du formulaire, même si le focus est déplacé vers d'autres contrôles qui ne sont pas CommandButton, appuyer sur la touche Entrée sélectionnera le bouton. Au moment du design, spécifiez un bouton comme CommandButton par défaut du formulaire en définissant sa propriété Default sur True.
Si CommandButton est le bouton d'annulation par défaut du formulaire, même si le focus est déplacé vers d'autres contrôles, le bouton peut être sélectionné en appuyant sur la touche ÉCHAP. Au moment du design, spécifiez un bouton comme bouton d’annulation par défaut en définissant sa propriété Cancel sur True. Toutes ces opérations amènent Visual Basic à appeler la procédure événementielle Click.
Application "Bouton Test"
Utilisez l'attribut Légende pour afficher du texte sur le bouton afin d'indiquer à l'utilisateur ce que fait le bouton. Dans la figure 3.4, l'exemple de bouton de test dans l'exemple d'application de contrôle contient un CommandButton avec une propriété Caption de ChangeSignal (cet exemple fonctionne pour Buttons.frm dans l'exemple d'application Controls.vbp).
Notez que S est la touche de raccourci de ce bouton, représentée par un soulignement. L'insertion d'un symbole (&) dans le texte de l'attribut Légende fera des caractères suivant ce symbole la touche de raccourci du bouton (par exemple, Change&Signal).
Lorsque l'utilisateur clique sur le CommandButton, le code du processus événementiel Click du CommandButton sera exécuté. Dans cet exemple, chaque fois que vous cliquez sur le bouton, il se transforme en une icône de feu tricolore différente.
Pour plus d'informations sur les propriétés de CommandButton, consultez le chapitre 7, « Utilisation des contrôles standard de Visual Basic ».
Commandes d'affichage et de saisie de texte
Les contrôles Label et TextBox sont utilisés pour afficher et saisir du texte. Utilisez un Label lorsque l'application affiche du texte dans un formulaire et un TextBox lorsque vous autorisez l'utilisateur à saisir du texte. Le texte dans Labels est du texte en lecture seule, tandis que le texte dans TextBox est du texte modifiable.
Texte pouvant être modifié par l'utilisateur, tel qu'une entrée séquentielle TextBox
champ ou une zone de mot de passe
Texte qui peut uniquement être affiché, comme l'identification d'une étiquette dans un formulaire
champs ou afficher des instructions à l'utilisateur
Les étiquettes et les zones de texte sont abordées dans les sections suivantes :
Afficher du texte avec des étiquettes (vbconUsingLabels) Connaissance de base de l'utilisation des contrôles Label.
Bases du travail avec TextBox à l'aide de TextBox (vbconWorkingWithTextBox).
Afficher le texte avec l'étiquette
Le texte affiché par le champ Label ne peut pas être modifié directement par l'utilisateur. Les contrôles tels que TextBox et ScrollBar qui ne possèdent pas leur propre propriété Caption peuvent être identifiés avec Label. Le texte réellement affiché dans l'étiquette est contrôlé par la propriété Caption, qui peut être définie dans la fenêtre "Propriétés" au moment de la conception ou affectée avec du code au moment de l'exécution.
Par défaut, le titre est la seule partie visible du contrôle Label. Cependant, si vous définissez la propriété BorderStyle sur 1 (ce qui peut être fait au moment du design), alors l'étiquette aura une bordure et ressemblera à une TextBox. Vous pouvez également modifier l’apparence de l’étiquette en définissant les propriétés BackColor, BackStyle, ForeColor et Font de l’étiquette.
Modifier la taille de l'étiquette pour l'adapter à son contenu
Vous pouvez spécifier le titre d'une étiquette sur une seule ligne dans la fenêtre "Propriétés" lors de la conception. Mais que se passe-t-il si vous souhaitez saisir un titre plus long ou un titre susceptible de changer au moment de l'exécution ? Label fournit deux propriétés : AutoSize et WordWrap pour vous aider à modifier la taille du contrôle pour l'adapter à un titre plus long ou plus court.
La propriété AutoSize détermine si le contrôle change automatiquement de taille pour s'adapter à son contenu. Si cette propriété est définie sur True, le Label changera horizontalement en fonction de son contenu, comme le montre la Figure 3.5.
La propriété WordWrap fait que le Label change verticalement en fonction de son contenu tout en gardant sa largeur inchangée, comme le montre la figure 3.6. Pour une version fonctionnelle de cet exemple, consultez WordWrap.frm dans l'exemple d'application Controls.vbp.
Notez que si vous exécutez l'exemple AutoSize dans Controls.vbp, vous constaterez que les deux cases doivent être cochées pour pouvoir utiliser WordWrap en même temps. En effet, pour que la propriété WordWrap de Label fonctionne, vous devez définir AutoSize sur True. La largeur de l'étiquette n'augmentera que si la largeur d'un seul mot dépasse la largeur actuelle du contrôle.
Pour plus d'informations sur les propriétés du contrôle Label, consultez le chapitre 7, « Utilisation des contrôles standard de Visual Basic ».
Utiliser des zones de texte
TextBox est un contrôle à usage général qui peut saisir du texte par l'utilisateur ou afficher du texte. À moins que la propriété Locked de TextBox soit définie sur True, vous ne pouvez pas utiliser TextBox pour afficher le texte que vous ne souhaitez pas que l’utilisateur modifie.
Le texte réel affiché dans TextBox est contrôlé par la propriété Text. La propriété Text peut être définie de trois manières : dans la fenêtre Propriétés au moment de la conception, via le code au moment de l'exécution ou par la saisie de l'utilisateur au moment de l'exécution. Le contenu actuel de TextBox peut être récupéré au moment de l'exécution en lisant la propriété Text.
TextBox multiligne et WordWrap
TextBox affiche uniquement une seule ligne de texte par défaut et n'affiche pas ScrollBar. Si le texte est plus long que l'espace disponible, seule une partie du texte sera affichée. En définissant les propriétés MultiLine et ScrollBars (qui ne peuvent être définies que lors de la conception du programme), vous pouvez modifier l'apparence et le comportement de TextBox.
Attention à ne pas confondre la propriété ScrollBars avec le contrôle ScrollBar. Le contrôle ScrollBar n'appartient pas à TextBox et possède son propre ensemble de propriétés.
La définition de la propriété MultiLine sur True permet à TextBox d'accepter ou d'afficher plusieurs lignes de texte au moment de l'exécution. Tant qu'il n'y a pas de ScrollBar horizontale, le texte dans la TextBox multiligne sera automatiquement renvoyé à la ligne en fonction du mot. La valeur par défaut de la propriété ScrollBars est définie sur 0 (Aucun). Le retour à la ligne automatique évite aux utilisateurs d'avoir à insérer des sauts de ligne à la fin des lignes. Lorsqu'une ligne de texte dépasse la longueur d'affichage, TextBox plie automatiquement le texte sur la ligne suivante pour l'afficher.
Au moment de la conception, les sauts de ligne ne peuvent pas être saisis dans la fenêtre Propriétés. Au cours du processus, un point d'arrêt de ligne peut être généré en insérant un retour chariot suivi d'un caractère de nouvelle ligne (caractères ANSI 13 et 0). Vous pouvez également utiliser la constante vbCrLf pour insérer une combinaison de retour chariot et de saut de ligne. Par exemple, la procédure événementielle suivante est un exemple de placement de deux lignes de texte dans une TextBox multiligne (Text1) lorsque le formulaire est chargé.
Sous-Formulaire_Load()
Text1.Text=Voicideuxlignes_
&vbCrLf&inatextbox
FinSub
Utiliser le texte de TextBox
À l’aide des propriétés SelStart, SelLength et SelText de TextBox, vous pouvez contrôler le point d’insertion et le comportement de sélection de TextBox. Ces propriétés sont uniquement disponibles au moment de l'exécution.
Lorsqu'une TextBox reçoit le focus pour la première fois, le point d'insertion par défaut et la position du curseur de la TextBox se trouvent à l'extrême gauche du texte. Les utilisateurs peuvent les déplacer avec le clavier et la souris. Lorsque TextBox perd le focus puis le retrouve, la position du point d'insertion est la même que la dernière position définie par l'utilisateur.
Dans certains cas, cela peut être incompatible avec les paramètres utilisateur. Par exemple : dans une application de traitement de texte, l'utilisateur souhaitera que de nouveaux caractères apparaissent après le texte existant ; dans une application de saisie de données, l'utilisateur souhaitera que sa saisie remplace l'entrée originale. À l’aide des propriétés SelStart et SelLength, l’utilisateur peut modifier le comportement de TextBox selon ses besoins.
La propriété SelStart est un nombre indiquant le point d'insertion dans la chaîne de texte, où 0 représente la position la plus à gauche. Si la valeur de la propriété SelStart est supérieure ou égale au nombre de caractères dans le texte, le point d'insertion sera placé après le dernier caractère, comme le montre la figure 3.7. Pour une version fonctionnelle de cet exemple, consultez Text.frm dans l'exemple d'application Controls.vbp. La propriété SelLength est une valeur qui définit la largeur du point d'insertion. Définir SelLength sur une valeur supérieure à 0 sélectionnera et mettra en surbrillance les caractères SelLength à partir du point d’insertion actuel. La figure 3.8 montre les performances de la sélection.
Si un morceau de texte est sélectionné, le texte tapé par l'utilisateur remplacera le texte sélectionné. Dans certains cas, vous pouvez également utiliser la commande Coller pour remplacer le texte d'origine par un nouveau texte. La propriété SelText est une chaîne de texte à laquelle une valeur peut être attribuée au moment de l'exécution pour remplacer le texte actuellement sélectionné. S'il n'y a pas de texte sélectionné, SelText insérera le texte au point d'insertion actuel.
Pour plus d'informations sur les propriétés du contrôle TextBox, consultez le chapitre 7, « Utilisation des contrôles standard de Visual Basic ».
Pour plus d'informations sur les propriétés du contrôle TextBox, consultez le chapitre 7, « Utilisation des contrôles standard de Visual Basic ».
->