Accueil
 COURS INFORMATIQUE
 Cours Algorithmique
 Cours ASP
 Cours CSS
 Cours HTML
 Cours PHP / MySQL
 Cours Réseaux
 Cours SQL
 Cours Visual Basic
 ARTICLES
  Conception de sites
  Droit & Internet
  e-commerce
  Société
  Strategies du web
  Technologies Web
  Marketing Web
 LIVRES
  ASP/ASP.Net
  C/C++/C#
  Conception de sites
  DHTML/CSS
  Gestion de Projet
  HTML/Internet
  Java/JSP/J2EE
  JavaScript/VbScript
  Juridique
  Marketing/Stratégie
  PHP/Linux/Unix
  Réseaux
  XML/XHTML/XSL
 NETALYA RECOMMANDE
Reussir un projet de site web

Cours Visual Basic N°2
Les objets standard (contrôles)

Auteur : Christophe Darmangeat Imprimer ce cours

Les feuilles (" Form ")

Le contrôle de base, absolument universel, en Visual Basic est la feuille, en anglais, Form. Cet objet est quasiment incontournable ; on ne peut créer et utiliser d’autres contrôles que si ceux-ci font partie d’une Form. Il y a certes moyen de rendre celle-ci invisible, pour qu’on ne voie que les objets posés dessus ; mais même invisible, elle doit nécessairement exister.

A l’ouverture de Visual Basic, on vous propose d’ailleurs par défaut un objet Form. Ce n’est pas pour rien.

Nous allons examiner d’emblée deux propriétés dont il est essentiel de comprendre la signification. Ces propriétés existent pour l’objet Form, mais elle existent aussi pour tous les autres objets Visual Basic. Ce que vous allez apprendre maintenant est donc d’une utilité universelle.

A tout objet sont donc associées les propriétés :

Name : il s’agit du nom de l’objet tel qu’il est géré par l’application. Par défaut, VB baptise tous les objets que vous créez de très jolis noms génériques, comme Form1, Form2, Form3, Text1, Text2, Text3, etc.

Il est donc vivement conseillé, avant toute autre chose, de rebaptiser les objets que vous venez de créer afin de leur donner des noms plus évocateurs. Parce que sinon, dès que vous créerez une application d’une taille respectable, vous serez complètement paumés dans vos noms d’objet, et vous ne saurez plus qui est quoi.

Caption : il s’agit du texte (" étiquette ") associé à l’objet sur l’écran. Cette caption est donc très utile pour professionnaliser une application, lui donner un look fini, mais ne joue aucun rôle dans la désignation de l’objet par l’application.

Je rappelle que dans le cas particulier d’une Form, outre ces deux " noms ", il y a le nom du fichier dans lequel elle sera sauvegardée. Cela fait donc trois " noms " pour un seul objet, noms qui chacun jouent un rôle différent ; Attention à ne pas se mélanger les pinceaux…

Il y a des tas d’autres propriétés intéressantes de Form. Je ne vais bien sûr pas toutes vous les infliger. Il y a une Aide, après tout, il faut que cela serve. Je signale toutefois :

Style : propriété qui gère la gueule générale de la Form (visible, invisible, présence ou non du menu système, tête des bordures, etc.)

Icon : propriété qui permet d’associer à la Form un fichier icône. Cette icône s’affichera dans la barre de Titre, tout en haut à gauche. Si la Form est la Form par défaut du projet, c’est également cette icône qui symbolisera votre application dans Windows. Cette propriété n’est pas du tout essentielle, mais elle fait partie des petits détails qui professionnalisent grandement le look final de votre travail.

Lorsqu’une application comporte plusieurs Form, et qu’on souhaite passer de l’une à l’autre, on dispose de deux catégories d’instructions :

Form1.Hide : masque Form1
Form1.Show : affiche Form1

Et sinon :

Form1.Load : charge Form1 en mémoire
Form1.Unload : décharge Form1 de la mémoire

Les procédures d’événements

Si vous vous souvenez de ce qu’on a vu plus haut, à chaque objet créé peuvent donc correspondre autant de procédures que d’événements possibles survenant à cet objet. En pratique, il est rare que l’on doive prévoir tous les événements. Si un événement se produit pour un objet (ex : l’utilisateur clique dessus) et qu’aucune procédure n’est attachée à cet événement, c’est très simple : il ne se passe rien !

VB gère très simplement la création – ou la modification – d’une procédure évènement liée à un objet. Lorsque l’objet est sélectionné, il suffit de faire un double-clic dessus (ou, c’est équivalent, d’appuyer sur F7). On se retrouve alors dans la fenêtre Code. La procédure gérant l’événement le plus courant pour l’objet considéré, si elle n’existait pas encore, vient d’être créée. Si elle existait déjà, cette manipulation vous amène sur elle pour modifications éventuelles.

La procédure ainsi créée se présente ainsi :

Private Sub NomObjet_Evenement()
Instructions
End Sub

Private signifie que la procédure n’est utilisable que pour la Form considérée (et pas pour d’autres objets situés sur d’autres Form, on reparlera de cela plus tard).

End Sub marque la fin de la procédure en question (mais pas la fin de l’application).

Vous remarquerez que l’événement retenu par VB comme étant le plus probable pour une Form est Load (chargement). Autrement dit, cette procédure contient tout ce que l’application doit faire au moment où la Form en question apparaît à l’écran.

Couramment, en plus du chargement (Load), les événements qu’on peut associer à une Form sont le clic, le double-clic, le déplacement de la souris, et éventuellement la frappe d’une touche au clavier.

Les boutons de commande

Il s’agit des boutons type OK, Annuler, mais dont le texte apparent (en Anglais, je le rappelle, caption) et le rôle dans une application peuvent varier à l’infini. Je ne vous étonnerai pas en vous disant que l'événement que VB considère comme étant le plus probable pour les boutons de commande est Click (en Français, clic, note du traducteur).

Les zones de texte

Ces zones (de type " text " pour VB) peuvent servir à saisir ou à afficher une information de type texte (autrement dit, cela inclut le cas où il s’agit d’un nombre). Il n’y a rien de bien particulier à signaler. La propriété essentielle d’une zone text est… text. C’est la propriété qui gère son contenu. Comme toute propriété, elle va pouvoir être utilisée tant en lecture qu’en écriture.

Supposons ainsi que nous avons défini une zone de type text, que nous avons appelée " Nomdefamille ". Pour mettre cette zone à blanc à l’affichage de la feuille de dialogue, on écrira tout simplement dans la procédure Form_Load () :

Nomdefamille.text = " "

Une fois que l’utilisateur aura entré quelque chose dans cette zone, si l’on veut récupérer ce quelque chose dans la variable Toto, on passera l’instruction suivante :

Toto = Nomdefamille.text

Les zones de textes possèdent également une foultitude d’autres propriétés, mais celles-ci concernent essentiellement leur présentation. Le fondamental, en l’occurrence, reste le contenu, donc la propriété text.

Parmi ces multiples propriétés, je signale :

Multiline : autorise ou non l’écriture sur plusieurs lignes
Scrollbars : fait figurer une barre de défilement horizontale ou verticale (ou les deux)
PaswordChar : crypte le texte entré sous forme d’étoiles
MaxLength : limite le nombre de caractères qu’il est possible de saisir

Les messages

Comment envoyer facilement des informations à l’utilisateur  ? La réponse à cette question qui vous taraude se trouve dans les lignes qui suivent.

Bien sûr, si vous souhaitez envoyer des messages riches, compliqués et / ou présentés d’une manière originale, la seule solution reste de programmer des Form correspondant à vos souhaits et de passer les instruction VB nécessaires pour qu’elles contiennent les informations voulues.

Mais si votre seule ambition, à un moment donné d’une application, est d’envoyer un message à l’utilisateur qui se limite à un texte, ou à un chiffre, ou même à une combinaison des deux, avec des boutons standard comme OK, Annuler, etc., alors VB met à votre disposition la fonction MsgBox.

Vous pourrez ainsi à moindre frais envoyer à l’écran des mini-boîtes de dialogue d’un type bien connu par tous les utilisateurs de Windows, du style :

MsgBox comporte trois arguments essentiels :

  • le texte du message à envoyer
  • le style des boutons et de l’icône éventuelle à faire figurer sur le message
  • le texte de la barre de Titre

Vous trouverez tous les détails concernant ces paramètres dans l’aide de VB. Un point mérite cependant qu’on s’y arrête : c’est que la syntaxe de cette fonction est, de manière un peu surprenante, la suivante :

Variable = MsgBox (arguments)

La variable, obligatoire, sert à stocker la réponse de l’utilisateur, c’est-à-dire sur quel bouton il a appuyé pour faire disparaître le message de l’écran. Le seul cas où l’on peut utiliser la syntaxe plus simple, sans utiliser de variable :

Msgbox " Toto "

… est celui où l’on souhaite une MsgBox avec seulement le bouton OK. Il n’est pas très difficile de comprendre pourquoi.

En résumé, MsgBox est une fonction qui vous donne accès à un type de Form préprogrammé, aux fonctionnalités limitées, mais à la programmation très rapide.

Je ne saurais trop insister sur l’extrême utilité de cette fonction. Pour agrémenter vos applications sans vous embêter, bien sûr. Mais aussi à fins de débogage. N’hésitez surtout pas, dans un programme qui ne veut obstinément pas marcher, à mettre aux bons endroits des MsgBox pour faire apparaître la valeur de telle ou telle variable à un moment donné de l’exécution. Cela ne coûte pas cher et s’avère dans presque tous les cas fort utile.

Les cases

Il existe sous Windows deux sortes de cases :

  • les cases dites " cases à cocher " (CheckBox). Elles sont carrées, et indépendantes les unes des autres, même si elles sont regroupées dans un cadre pour faire plus joli.
  • les cases dites " cases d’option " ou " boutons radio " (OptionButton). Elles sont rondes et font toujours partie d’un groupe (dessiné par l’objet Frame). Ce groupe est indispensable, car au sein d’un groupe de cases d’option, jamais plus d’une seule case ne peut être cochée à la fois.

Moralité, avant de mettre des cases et d’écrire le code qui s’y rapporte, il faut bien se demander de quel type de cases on a besoin.

Une fois ce préambule posé, il n’y a pas de problèmes particuliers, hormis qu’il faut toujours créer le groupe avant de poser des cases à l’intérieur. Sinon, la propriété la plus intéressante de ces cases est de loin celle qui nous permet de savoir si elle est cochée ou non. Cette propriété s’appelle Value.

Elle prend la valeur True ou False lorsqu’elle concerne les cases d’option, et 1 ou 0 lorsqu’elle s’applique aux cases à cocher. Sauf si on fait du VBA, auquel cas c’est True ou False tout le temps. Eh oui, chez Microsoft, c’est comme chez les Shadoks : pourquoi faire simple, quand on peut faire compliqué ?

Value peut être utilisée en écriture (pour initialiser telle ou telle case au moment où elle arrive à l’écran) ou en lecture (pour tester quelle case a coché l’utilisateur, et accomplir du coup un traitement ou un autre).

A cette occasion, j’en profite pour mentionner la propriété Enabled (True ou False), qui rend un objet accessible ou non. Cette propriété est commune à la plupart des contrôles Visual Basic.

Les groupes de contrôles

Jusque là, 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 :

  • d’une part, 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.
  • D’autre part, chaque objet possédait une propriété Name bien à lui qui nous permettait de le désigner sans ambiguïté en écrivant le code.

En fait, cela était la conséquence directe de ceci.

Mais cela induit lors de certains programmes une lourdeur qui ne vous aura pas échappé. Lorsque plusieurs objets de même type remplissent des tâches voisines, voire semblables, on se retrouve avec des procédures (une par objet) qui se ressemblent beaucoup, voire qui sont carrément les mêmes.

La création d’un groupe de contrôles a pour but d’alléger tout ceci. Comment ça marche, me direz-vous ? Eh bien voici, vous répondrai-je.

Lors de la création des contrôles (mettons, une série de quatre cases à cocher), on procède dorénavant par copier coller. A la question " souhaitez-vous créer un groupe de contrôles ", on répond sans réserves (mais sans illusions) par l’affirmative.

Dès lors, les quatre objets ainsi créés seront en fait des membres d’un même groupe de contrôles (on parle aussi de " collection " d’objets). En bon français, cela signifie que ces quatre objets porteront le même nom (Name) mais que ce nom sera flanqué d’une variable (on parle souvent alors d’index), variable qui servira à les identifier individuellement.

Si j’osais une métaphore ailée (mais non filée), je dirais que l’objet est à la collection d’objets ce que la variable simple est au tableau. Limpide, non ?

Donc, résumons nous. Si on a créé un groupe de 4 contrôles de type 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 ça commence à zéro (faudrait pas que ce soit trop simple non plus), CaseCarrée(1), CaseCarrée(2) et CaseCarrée(3).

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

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

Et voilà.

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, dorénavant, il n’y a plus qu’une seule procédure pour tout le groupe ! Si on a besoin de savoir quelle case a été cliquée, il suffit de tester au sein de cette procédure la variable Index, qui, vous l’aurez deviné, peut valoir de zéro à trois. Si le nom de variable Index vous semble trop lourdingue, rien ne vous interdit de le modifier.

Moralité, en VB, c’est comme pour tout le reste, pour pouvoir être fainéants, devenons compétents.

Les Listes

1 les types de liste

Les listes classiques dans Windows peuvent posséder ou non deux caractéristiques.

Elles peuvent être modifiables : c’est-à-dire que l’utilisateur a la possibilité d’entrer un élément qui ne figure pas au départ dans la liste. Cette caractéristique concerne donc les données proprement dites. Graphiquement, cela se traduit par la présence d’une zone de texte fonctionnant en symbiose avec la liste.

Elles peuvent être déroulantes : c’est-à-dire qu’on ne voit qu’un seul élément de la liste à la fois, et qu’il faut cliquer sur la flèche du côté pour " déplier " la liste. Cette caractéristique joue donc uniquement sur l’aspect de la liste, et aucunement sur la manière dont les données sont gérées.

Une liste peut donc prendre quatre têtes, selon qu’elle est modifiable ou non, déroulante ou non.

VB fournit deux contrôles de liste : une liste dite simple (ListBox) et une liste dite modifiable (ComboBox). Le gag (ce Bill Gates, quand même, quel marrant), c’est qu’en réalité, la liste dite modifiable est une liste déroulante… Alors, pour résumer la situation, voici un petit récapitulatif de ce qu’il faut utiliser :

LISTE Non Déroulante Déroulante
Non Modifiable ListBox Combo Box

Style = 2

Modifiable ComboBox

Style = 1

ComboBox

Style = 0 (défaut)

Les listes possèdent des tas de propriétés et de méthodes intéressantes. On retiendra :

AddItem (méthode) ajoute un élément à une liste en spécifiant son rang
Clear (méthode) efface tous les éléments d’une liste
List (propriété)renvoie en clair un élément d’une liste en fonction de son index
ListCount (propriété) renvoie le nombre d’éléments d’une liste
ListIndex (propriété) renvoie ou définit l’index de l’élément actuellement sélectionné
Multiselect (propriété) permet la sélection multiple
RemoveItem (méthode) supprime un élément de la liste
Sorted (propriété) trie les éléments d’une liste

2 listes spéciales

Des objets de type liste assez particuliers sont ceux qui permettent la navigation dans le disque dur, les répertoires, les fichiers, etc. On trouve ainsi les objets suivants, qui reproduisent des outils familiers sous Windows :

DriveListBox :liste des lecteurs logiques disponibles
DirListBox :liste des répertoires
FileListBox :liste des fichiers existants

La présence de ces contrôles soulage votre tâche, mais ne vous épargne toutefois pas totalement d’écrire du code. Ces trois objets étant des cas particuliers de contrôle liste, s’y appliquent List, Listcount et Listindex. Vous devrez donc gérer la mise à jour de ces contrôles les uns en fonction des autres.

Pour ce faire, les propriétés suivantes sont indispensables :

Path : renvoie ou définit le chemin actuellement sélectionné dans un contrôle DirListBox
Filename : renvoie ou définit les fichiers présents dans la FileListBox


Nous vous informons que ce cours constitue une œuvre protégée en France par le Code de la Propriété Intellectuelle, et à l’étranger par les conventions internationales en vigueur sur le droit d’auteur. La violation de l’un des droits d’auteur de l’œuvre est un délit de contrefaçon. Il est donc interdit, à titre privé ou public, de reproduire, copier, vendre, revendre ou exploiter, que ce soit dans un but commercial ou purement gratuit, ce cours, sauf accord exprès et préalable de son auteur.


Google
 
 RESSOURCES GRATUITES
 Caractères spéciaux
 Code Couleurs HTML
 Générateur Méta Tags
 Références HTML
 Scripts : ASP
 Scripts : Java Scripts
 PRATIQUE / OUTILS
 Salons Informatiques
 Astuces Windows
 TÉLÉCHARGEMENTS
 Utilitaires système
 Logiciels pratiques
 Jeux & démos
 INFOS SITE
 Contacts
 Mentions légales
 Qui sommes-nous ?
 PARTENAIRES
 Jeux et Jouets
 Murielle Cahen
 Cours d'anglais
 Droit NTIC
 Directeur Internet
 Australie
 Création site Internet
 VOD News
 Web Hostings