Vous êtes sur la page 1sur 20

[POO: VB.

Net] ]

TDI

Linterface graphique en VB.Net


I. Environnement Visual Studio
Aprs avoir fait connaissance des concepts de la programmation objet, on va se familiariser avec l'interface VB, c'est--dire avec les principaux outils quoffre l'environnement de dveloppement Visual Studio.

1. Structure des fichiers VB


Les habitus de Visual Studio 6.0 ne seront pas tromps : linterface de Visual Basic .net reprend la plupart des palettes standards avec quelques outils en plus : La barre doutils regroupe les diffrents contrles par catgories; La zone centrale permet tour tour dcrire le code et de dfinir les interfaces graphiques utilisateurs; A droite, lexplorateur de solutions et la fentre de proprits; La premire chose faire, c'est d'assimiler l'architecture des constructions quon va crer et le vocabulaire qui va avec. Et a, ce n'est pas rien, tant ct d'une application VB, et autant consacrer quelques minutes se mettre les ides au clair plutt que perdre ensuite des heures juste parce qu'on s'est mlang les pinceaux dans les arborescences et les dnominations. Alors, une application VB.NET, c'est quoi ? C'est : Un ensemble de fichiers formant ce qu'on appelle le code source source, crit dans le langage Visual Basic. Un fichier excutable, produit partir de ce code source. Rappelle que le fait d'engendrer un fichier excutable partir du code source s'appelle la compilation. En ce qui concerne le code source, VB va l'organiser de la manire suivante : Le point de dpart d'une application VB, c'est une solution. Lorsqu'on cre une nouvelle solution, VB demande pour celle-ci un nom et un rpertoire. rpertoire Il va alors faire trois choses : i. ii. ii . Crer l'emplacement indiqu le rpertoire portant le nom de la solution; Dans ce rpertoire, toujours avec le nom de la solution, crer un fichier *.sln contenant les informations de la solution.

iii. *.suo iii. Et toujours dans ce rpertoire, toujours avec le nom de la solution, crer un fichier cach *. suo, contenant les options choisies dans Visual Basic par le programmeur qui a dvelopp la solution. Mais ce n'est qu'un dbut. En effet, dans nos solutions Visual Basic, on va devoir insrer nos applications, c'est-dire nos projets. Si on le souhaite, une mme solution peut contenir plusieurs, voire des dizaines de projets. Cela dit, on ne recommande pas cette stratgie. stratgie On considrera donc, qu'une application VB = un projet = une solution. En effet, chaque projet est lui aussi caractris par un nom et un rpertoire rpertoire de sauvegarde. Mais, et c'est l que c'est fort, ce rpertoire n'est pas forcment un soussous-rpertoire de la solution qui contient le projet - mme si lorsqu'on dbute, ce soit trs vigoureusement recommand. Il n'y a donc pas de rapport entre le fait que les objets "solution" contiennent les objets "projets", et le fait que le rpertoire o est enregistre la solution contienne les rpertoires o sont enregistrs les projets... Toujours est-il que VB va non seulement crer un rpertoire au nom du projet, mais qu'il va mettre dans ce rpertoire toute une srie de fichiers, dont un fichier au nom du projet et extension *.vbproj, fichier dans lequel est stocke toute la structure du projet. Remarque: Il faut faire trs attention lorsqu'on incorpore un projet dans une solution : en effet, la commande Nouveau

projet entrane obligatoirement la cration d'une nouvelle solution. En revanche, pour insrer un projet dans une solution existante, il faut choisir Ajouter un projet.
Enfin: dans chaque projet, il y a un certain nombre d'lments de base. Ces lments sont, pour l'essentiel, des Form, ou formulaires. Une application Windows basique compte un seul formulaire, et une application complexe peut en rassembler plusieurs dizaines. Chaque formulaire sera sauvegard sauvegard dans un fichier diffrent, dont l'extension sera *. *.VB VB. Il faut noter que c'est dans ces fichiers *.VB que se trouve le code proprement dit.
1 FARIH Sad

[POO: VB.Net] ]

TDI

Conseils: On appliquera donc imprativement les rgles suivantes : Une ne solution par projet, un projet par solution; s Le e projet devra tre sauvegard dans un sous-rpertoire sous de la solution; En ce qui concerne l'excutable, A la diffrence de certains autres langages, VB.NET VB ne produit pas un code directement excutable par toutes les machines. Les instructions contenues contenues dans un excutable VB.NET sont crites dans un langage appel MSIL, pour MicroSoft Intermediate Langage. Comme son nom l'indique, ce langage s'adresse des couches "intermdiaires" de la machine, savoir d'une part Windows lui-mme, lui mme, d'autre part une couche logicielle appele le Framework .NET (qu'on peut traduire par "infrastructure .NET"). Pour pouvoir excuter un excutable VB.NET, .NET, une machine doit donc imprativement comporter ce Framework.NET, que l'on peut tlcharger gratuitement sur le site de Microsoft. Comment dclencher la compilation ? En passant par la commande Gnrer, qui propose le(s) nom(s) des projets de la solution encours. Le fichier .exe est alors gnr dans le sous-rpertoire bin correspondant au projet.

2. Prise en main de Visual Basic


Le logiciel Visual Basic Studio est utilis pour faciliter l'criture de programmes en mettant notre disposition, sous une ne forme facilement accessible, les classes Windows les plus communes (boutons, listes, cases, et tout ce qui s'essuie).

a. Les deux fentres principales


Lorsqu'on va la programmer via Visual Studio, une application va toujours pouvoir tre aborde sous deux angles complmentaires : L'aspect graphique, visuel (son son interface). interface Dans la fentre principale de VB, on pourra mettre les diffrents objets quon veut voir figurer dans notre application, les poser sur notre formulaire, modifier leurs proprits par dfaut, etc : i. Fentre dexploration

Explorateur Boite outils (Contrles standards) Conception

Zone des messages

Fentre des proprits

ii. ii.

Fentre de code Le code proprement dit, o on va entrer les diffrentes procdures en rapport avec le formulaire en question : Passons au code. Visual Studio va en fait dcrypter notre code au fur et mesure de sa rdaction, r et on donner

en temps rel des indications via des codes de couleur. Ainsi :


2 FARIH Sad

[POO: VB.Net] ]

TDI

Erreur de compilation Souligne en zigzag Instruction


Liste droulante Aprs un objet reconnu

Commentaire

Les es titres de procdures seront crits en gris; gris; Les mots-cls cls du langage seront ports en bleu; bleu; Les commentaires seront en vert; vert; Toute ligne comportant une faute de syntaxe, syntaxe, ou posant un problme au compilateur, sera immdiatement souligne. au dessus de l'erreur pour que la raison en soit souligne. Qui plus est, il suffira d'amener le curseur de la souris au-dessus immdiatement affiche dans une bulle d'aide. On dispose donc d'un premier outil de dbogage. Lorsquon tape dans le code un nom d'objet, et pour peu que ce nom soit reconnu (c'est--dire (c'est qu'il existe bel et bien un objet de ce nom dans notre application), sitt quon entre le point qui termine le nom de l'objet, apparat une liste objet. liste droulante avec l'intgralit des proprits et mthodes disponibles pour cet objet Comme on est dans un langage qui est un langage structur structur, , le code est organis sous forme de blocs qui peuvent tre dploys ou masqus, pour plus de lisibilit, via les petites icnes placs gauche de la tte de chaque bloc. Exemple
Option Strict On 'Force la declaration des variables et le transtypage Imports System 'Permet l'utilisation des outils de base du langage Module MyFirstProgram 'Procedure principale. . Point d'entree de l'execution du programme Sub Main() 'Presentation du programme Call Console.WriteLine("Ce "Ce programme vous dit :...") :..." Call Console.WriteLine("Hello "Hello world") world" Call Console.WriteLine("Pressez "Pressez 'Enter' pour terminer terminer l'execution...") l'execution..." Console.Read() End Sub End Module

Btir une application VB, , c'est gnralement faire de frquents allers-retours allers retours entre les deux reprsentations. Pour cela: il suffit de se servir des onglets disponibles sur le haut de chaque fentre.

b. Les explorateurs
i. Explorateur de serveur Lexplorateur de serveur permet de recenser sous forme hirarchique lensemble des objets dun serveur (Serveurs SQL, journaux, Services ). Cette fentre est principalement utilises afin daccder au schma dune base de donnes utilise dans une application.

FARIH Sad

[POO: VB.Net] ]

TDI

Explorateur de serveur ii. ii.

Laffichage de classes

Fentre de proprits

La bote outils et les contrles standards La partie graphique de lapplication application va contenir un (ou plusieurs) formulaire(s). rmulaire(s). Sur un formulaire, on peut

placer un ou plusieurs objets graphiques ou ce quon appellera des contrles (Bouton cliquer, Champ libell (texte statique), Champ texte saisir au clavier, Menu, etc.). Ces contrles sont des objets pr-programms pr dont lutilit principale est de faciliter linteraction avec lutilisateur. Chacun de ces objets graphiques a une fonctionnalit bien prcise. Le tableau suivant rsume les contrles standards de base les plus utiliss: Contrle Nom du contrle Utilit Utilit
Label TextBox Button ListBox ComboBox

Afficher un texte statique : un libell Afficher et rentrer une valeur au clavier Lancer lexcution une procdure vnementielle Afficher une liste statique de valeur Combiner lutilit des contrles TextBox et
ListBox

PictureBox

Afficher une image dans un cadre. Celui-ci Celui peut tre redimensionn en fonction de limage (Autosize = True) Slectionner une option. Si utilis en plusieurs instances (Option Button), une seule peut tre choisie Slectionner une option. Si utilis en plusieurs instances (Check Box), une ou plusieurs peuvent tre e choisies Crer une fentre au sein dun formulaire et crer un groupe de contrles.

RadioButton

CheckBox

GroupBox

Les contrles standards dans VB se trouvent dans la Bote outils (ToolBox). Dautres contrles plus labors (Components) peuvent tre ajouts uts dans la bote outils, en slectionnant dans la barre du menu : Project/ Add Components.
4 FARIH Sad

[POO: VB.Net] ]

TDI

iii. iii.

Laffichage de classes Laffichage de classes liste de manire hirarchique les diffrentes classes du projet ainsi que leurs mthodes, Fentre de proprits Dj prsente dans la version 6.0, cette fentre recense toutes les proprits relatives lobjet slectionn. Chaque fois qu'un contrle (ou plusieurs) est slectionn, la fentre des proprits (situe en standard droite de

proprits, vnements et t autre relations dhritage. iv. iv.

l'cran) affiche les valeurs associes ce contrle. C'est--dire C'est que se mettent jour la liste des proprits (qui comme on l'a vu varie d'une classe, donc d'un contrle, l'autre) et la valeur de ces proprits (qui varie d'un contrle l'autre, mme lorsqu'ils sont de la mme classe). Les proprits qui sont affiches l sont les proprits par dfaut du contrle. Ce sont celles qu'aura le contrle au moment du lancement de l'application. l'application Bien sr, par la suite, il n'est pas exclu que ces proprits soient modifies, notamment par des lignes de code. Mais, pour fixer les proprits voulues pour chaque contrle au lancement de l'application, le plus simple est de fixer la main, sans code, les valeurs dsires dans cette fentre fent des proprits. On peut citer quelques proprits de Form1 et leurs valeurs respectives: Name = Form1, nom logique utilis pour rfrencer lobjet dans du code VB. BackColor = &H800000, couleur de fond de lobjet Form1. Text = Form1, nom qui apparat visuellement sur lobjet, celui-ci ci peut tre diffrent de la proprit Name. v. Explorateur de Solutions Lexplorateur de solutions (Ex explorateur de projet sous VB 6.0) rfrence

lensemble des lments des projets (Fichier de configuration pour lassemblage, lassemblage, super classes hrits, Feuilles.) Une solution contient les fichiers suivants :

.sln : fichier de configuration de la solution .vbproj : fichier projet, (ancien .vbp) .VB : fichiers contenant du code (anciens .bas, .frm, .cls) .resx : associ une feuille, euille, contient les ressources
Renommer le fichier programme : ce doit tre le nom du module Dans Solution Explorer : Bouton droit sur le nom du programme (Module1.vb) Rename Laide dynamique Laide dynamique propose tous les moments de la conception des rubriques daide utiles en fonction de ce quon fates. Par exemple, la rubrique crer une collection de contrles sera affiche lorsquon lors ajoutera un bouton radio l'application. Appuyer sur F1 pour accder l'aide en ligne. vii. vii. La liste des tches La fentre liste des tche permet de recenser lensemble des tche raliser sur le projet. Cette liste peut tre Une tche quon aura nous mme dfinie (ex : appeler le client 11h); Une tche issue des commentaires du code : tous commentaires du code commenant par todo: sera automatiquement ajout; Lorsquune erreur de syntaxe est dtecte par Visual Studio, elle est automatiquement ajoute dans la liste; vi. vi.

remplie de plusieurs faons :

FARIH Sad

[POO: VB.Net] ]

TDI

3. Applications Windows
Le Framework Visual Basic .Net permet la cration de formulaires Windows afin dtablir des interfaces graphiques entre lutilisateur et le code. Ces formulaires sont des fentres qui contiendront des contrles (Champs texte, boutons, liste droulantes .).

a. Les formulaires
Les formulaires sont les lments de base des applications graphiques Windows.Il existe 2 solutions pour la

cration de formulaires sous le Framework .Net :


i. Windows Forms Ce sont les formulaires dont disposait Visual basic 6. Les applications bases sur ces formulaires sont utiliss

pour le dveloppement dapplications pour lesquelles la plupart des traitements se font sur la machine cliente et qui ont besoin daccder aux ressources de la machine (fichiers, lecteurs, imprimantes ). ii. ii. Web Forms Les applications base de Web Forms sont destines tre utilises sur le Web par le biais dun navigateur. Ce

genre dapplication prsente plusieurs avantages comme un dploiement facile dans le sens o seuls les composants du navigateur doivent tre installs, une maintenance simplifie car le programme est stock sur le serveur et, enfin, les applications dveloppes sont indpendantes de toutes plateformes dans le sens o elles nutilisent que les ressources du navigateur.

b. Modes de prsentation
En fonction de lapplication raliser, plusieurs modes de prsentation des feuilles peuvent tre utiliss : Mono document : Ce genre dapplication appele SDI (Single Document Interface) ne permet laffichage que dune fentre la fois. Loutil Paint en est un bon exemple. Multi document : Les applications MDI (Multiple Document Interface) sont constitues dune fentre principale (Fentre mre) contenant son tour plusieurs documents (fentre fille). Microsoft Word est une application MDI. Explorateur : Cest le mode de prsentation le plus utilis. Il permet un affichage hirarchique des menus sur la partie gauche et laffichage des lments sous forme de liste sur la partie droite. Loutil Gestion de lordinateur sous Windows 2000 en est un exemple.

II. II.
1.

Manipulation des contrles


Dfinition
Un contrle est un objet cr partir de certaines des classes dfinies dans Windows. En standard, VB propose

plusieurs rubriques au sein de sa bote outils, et rien que dans la principale d'entre elles, la rubrique Windows Forms, Forms une quarantaine de contrles, Crer des contrles partir des classes proposes en standard est extrmement simple. Il suffit d'aller piocher d'un clic de souris le contrle voulu dans la bote outils (qui, dans la configuration normale, se trouve gauche de l'cran) et d'effectuer un glisser-dplacer sur le formulaire pour donner ce contrle la taille et l'emplacement voulus. A signaler, qu'un simple double-clic dans la bote outils constitue une solution alternative. Par la suite, on peut toujours modifier l'emplacement et la taille d'un contrle, d'un simple coup de souris bien plac. Pour supprimer un contrle, c'est encore plus simple : on le slectionne, et ensuite la touche SUPPR l'enlvera. Si l'on veut manipuler plusieurs contrles du formulaire la fois, on peut slectionner toute une zone (par un habile cliquer-glisser), ou encore slectionner individuellement chaque contrle en maintenant la touche CTRL enfonce.

2. Types de contrles
Les contrles permettent de crer linterface entre lutilisateur et notre application. Cest via les contrles que lutilisateur pourra saisir des donnes, effectuer des slections et dclencher des actions par lintermdiaire des vnements.
6 FARIH Sad

[POO: VB.Net] ]

TDI

De manire gnrale, les contrles sont des objets graphiques, cest dire quils seront placs et visibles sur le formulaire. Cependant, certains contrles offrant des fonctionnalits de programmation napparatront pas sur le formulaire mais dans une zone situe en bas et uniquement en mode Design .

Contrle graphique

Contrle masqu

c. Membres communs
Les contrles Visual Basic .Net sont des classes issues de la classe de base control . Cette dernire assure les fonctions lmentaires comme le placement sur une feuille, leur position A cette classe est ajoute une classe drive permettant la personnalisation des diffrents contrles. i. Proprits Name: Nom du contrle. Ce nom ne comporter que des lettres et le caractre underscore _ . Anchor: Les ancres permettent de modifier automatiquement la taille dun contrle lors du redimensionnement dun formulaire. Chaque contrle possde sa propre ancre. Lors du paramtrage, on doit dfinir sur quels bords du conteneur est ancr le contrle. Dans lexemple suivant, on cre un contrle ancr gauche et droite :

CanFocus: Boolen spcifiant si le contrle peut recevoir le focus. CanSelect: Boolen spcifiant si le contrle peut tre slectionn. Dock: Dans le mme esprit, la proprit Dock permet dancrer un contrle aux un bord du conteneur. Dans lexemple suivant, le bouton est ancr en bas :

FARIH Sad

[POO: VB.Net] ]

TDI

Enabled: Cette proprit est une valeur boolenne spcifiant si le contrle est accessible ou non. Dans le second cas, le contrle apparatra gris. Location: La proprit Location est un objet permettant de dfinir lemplacement du contrle par rapport son conteneur. Il est compos de deux proprits (X et Y) qui dfinissent ses coordonnes par rapport au coin suprieur gauche du conteneur. Locked: Contrairement la version prcdente, cette proprit ne bloque pas le contrle lors de lexcution mais lors de la conception. Il permet dviter de modifier les proprits dun contrle. Modifiers: Cette proprit paramtre la visibilit au niveau programmation de lobjet. Elle peut prendre les valeurs suivantes : Valeur
Public Protected

Description Accessible partir de tous les lments de la solution Accessible partir des membres de la classe et des sous classes Accessible partir du programme et des assemblages lis Accessible partir des membres de la classe

Protected Friend Correspond lunion des visibilits Friend et Protected Friend Private

Par dfaut, la visibilit est friend. Size: Cet objet permet de dfinir la taille du contrle. Il est compos de deux proprits, width (largeur) et height (hauteur). TabIndex: Indice dfinissant lordre de tabulation du contrle par rapport son conteneur. Text: Cette proprit rfrence le texte contenu ou affich dans un contrle (Par exemple, le texte affich sur un bouton). Visible: Cette proprit dtermine si le contrle est visible lors de lexcution. Attention, aucun changement nest visible lors de la conception. ii. ii. Mthodes Mthode Description
Focus

Donne le focus au contrle

iii. iii.

Evnements Evnements
Click

Description Activ lors du clic sur le contrle Activ lorsque lutilisateur entre sur le contrle Activ lorsque le contrle reoit le focus Touche enfonce Touche enfonce et relche Touche relche Activ lorsque le contrle perd le focus Bouton souris enfonc Bouton souris relch Souris dplace sur le contrle Dplacement de la roulette Dclench lorsque le contrle est redimensionn

DoubleClick Activ lors du double clic sur le contrle Enter GotFocus KeyDown KeyPress KeyUp LostFocus MouseDown MouseUp MouseMove MouseWheel Resize

Premiers contrles Ouvrir donc la bote outils, et regardons a de prs. Que trouve-t-on ?

FARIH Sad

[POO: VB.Net] ]

TDI

3. La classe Form
a. Prsentation et proprits particulires
La classe Form (qu'on appelle galement le formulaire), issue de la classe Windows.Form, est l'lment de base, oblig et fondamental, de toute application VB pour Windows. C'est sur une Form, et uniquement sur une Form, quon pourra ventuellement poser d'autres contrles. Et mme si on peut la rigueur la rendre invisible, de toute faon, elle est quand mme l. C'est galement dans la Form que seront rassembles toutes les procdures vnementielles lies aux contrles quon aura crs sur cette Form. On peut d'entre noter plusieurs proprits de la classe Windows.Form (donc de tous les objets Form crs partir de cette classe), proprits quon retrouvera dans la totalit des autres contrles proposs par VB : Name : il s'agit du nom de l'objet, l'objet exactement comme une variable porte un nom de variable. La valeur de cette proprit n'est donc pas visible l'cran : il s'agit d'un nom qui sert uniquement dans le code, code pour dsigner l'objet en question. Text : une autre proprit quasi-universelle des contrles est le texte qui leur est associ l'cran. l'cran Pour une Form, il s'agira du texte qui figure en haut, dans la barre de titre. Pour un bouton, ce sera le texte crit dessus, pour une case, le texte qui figure juste ct, etc. l'inverse de la proprit Name, Text ne joue aucun rle du point de vue du code, et un rle essentiel du point de vue de l'interface. Size : Il s'agit videmment de la taille, autre proprit partage par la presque totalit des contrles. Il faut remarquer que la proprit Size est d'un type particulier, le type Size, qui est un type structur compos de deux Integer. Pour modifier sa valeur par du code: il faut utiliser une variable de type Size dj existante, ou, le plus souvent, la crer la vole par le constructeur New. Pour fixer par exemple la taille de la Form 500 pixels sur 300, et sachant que la manire la plus simple de dsigner la Form dans une des procdures qui lui sont lies est d'employer le mot Me, on pourra crire :
Me.Size = New Size(500, 300)

Sachant qu'il y a moyen de contourner l'obstacle, puisque plutt d'utiliser ce type Size structur, on peut dcouvrir quon a directement accs deux autres proprits, Height et Width, beaucoup plus maniables car de type Integer. Ainsi, la ligne ci-dessus pourra avantageusement tre remplace par :
Me.Width = 500 Me.Height = 300

Visible : cette petite proprit boolenne rend des services inestimables, puisqu'elle permet de masquer (quand elle vaut False) n'importe quel contrle. D'autres proprits de la classe Form sont propres cette classe, et ne se retrouvent pas - ou rarement - dans d'autres classes. Il s'agit par exemple de : Startposition : qui dtermine la position de la fentre sur l'cran lors du lancement de l'application; BackgroundImage : qui permet de dsigner une image d'arrire-plan pour une Form; FormBorderStyle : qui dtermine le type de bordures utilis; Exemple
Public Class Form1 Dim clic As Integer = 0 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Me.Size = New Size(500, 300) clic = clic + 1 Me.Text = "Nombre de clics : " & clic End Sub End Class

Ct vnements, les Form sont capables d'en recevoir - autrement dit, d'en grer - un certain nombre. Parmi ceux-ci, les plus importants, pour commencer, sont sans doute Load et Activate.
9 FARIH Sad

[POO: VB.Net] ]

TDI

Dfinitions fentr active. L'vnement Load L'vnement Activate correspond au fait que la Form spcifie devient la fentre correspond au chargement de la fentre en mmoire vive. Dans le cas d'une application qui ne compte qu'une seule Form, les deux vnements se confondent. En effet, l'unique Form se charge au lancement de l'application, devenant par par la mme occasion la Form active, et le restant sans discontinuer jusqu' la fin de cette application. Mais ds qu'une application compte plusieurs Form, les choses se passent tout autrement. Toutes les Form vont en effet tre charges au lancement de l'application l'application (dclenchant ainsi les vnements Load). Mais une seule sera active. Par la suite, chaque fois que l'utilisateur passera d'une Form l'autre, il redclenchera l'vnement Activate pour la Form sur laquelle il vient d'atterrir. Les vnements Activate et Load se prtent particulirement bien des instructions d'initialisation : c'est l, avant que l'utilisateur ait eu le temps de faire quoi que ce soit, qu'on remet les compteurs zro, qu'on remet les cases et les zones de saisie blanc (ou qu'on u'on y rcrit les valeurs par dfaut), etc.

b. proprits particulires
AcceptButton Lorsque lutilisateur appuie sur la touche entre, la mthode lie lvnement click du bouton dacceptation sera automatiquement dclench. Gnralement, cest le bouton bo ok ou sauvegard qui est paramtr comme AcceptButton. AllowDrop: Spcifie si le formulaire gre le Drag and Drop (Glisser dpos). AutoScale: Si cette option est active, la taille des contrles et du formulaire sont automatiquement redimensionns onns lors dun changement dynamique de la police dcran. AutoScroll: Cest est une nouveaut de la version .Net : elle permet de placer automatiquement des barres de dfilement lorsque la taille du formulaire ne permet pas laffichage de tous les contrles quil q contient. Avec AutoScroll Sans AutoScroll

BackColor: La proprit backColor dfinit la couleur de fond du formulaire. BackgroundImage: Il est possible de dfinir une image comme fond pour le formulaire. Limage sera automatiquement rpte en mosaque saque. CancelButton: Le bouton dannulation ralise lopration inverse du bouton dacceptation. Il permet dclencher lvnement click dun bouton du formulaire lorsque lutilisateur appuie sur touche escape. ControlBox: La proprit ControlBox dfinit it si le menu systme apparat au niveau de la barre de titre du formulaire :

Le menu systme peut galement tre modifi avec les proprits MinimizeBox , MaximizeBox et HelpButton .
10 FARIH Sad

[POO: VB.Net] ]

TDI

Cursor: Dfinit lapparence par dfaut du curseur sur le formulaire. Cette option peut galement tre paramtre au niveau des contrles.

Les diffrentes valeurs sont disponibles dans la classe System.Windows.Forms.Cursors Enabled: Dfinit si le formulaire est disponible (True) ou non (False). Dans ce dernier cas, aucun des contrles et menus des formulaires ne seront accessibles (griss). Font: Cette proprit dfinit les paramtres de formatage du texte. Cette proprit sera automatiquement applique par dfaut au texte des diffrents contrles. Cette proprit est elle mme dcompose en plusieurs autres proprits : Proprit Name Size Unit Bold GdiXXXX Italic Description Nom de la police utilise Taille de la police Exemple Garamond 12.5

Unit de mesure pour la police (Sachez que la plupart des logiciels utilisent lunit point ) Point True Texte en gras

Paramtres sur le jeu de caractre utilis Texte en italique True False True

Strikeout Texte barr Underline Texte soulign ForeColor: Couleur daffichage par dfaut pour les textes et graphismes du formulaire. FormBorderStyle: Style de bordure du formulaire :
Valeur Apparence Dimensionnable Valeur Apparence

Dimensionnable

None

Non

FixedSingle

Non

FixedDialog

Non

Sizable

Oui

Fixed3d

Non

SizableToolWindow

Oui

FixeToolWindow

Non

HelpButton: Affiche le bouton daide gauche de la barre de titre. Attention, le bouton ne sera pas affich si les boutons min et max sont activs.

11

FARIH Sad

[POO: VB.Net] ]

TDI

Pour dclencher un bloc dinstruction lorsque lutilisateur demande laide (Soit partir de la touche F1, soit partir du bouton daide, on doit crer une mthode implmentant lvnement :
Private Sub nom_mthode(ByVal sender As Object, ByVal hlpevent As System.Windows.Forms.HelpEventArgs) Handles objet.HelpRequested End Sub

Le code suivant permet dafficher une boite de dialogue lorsque lutilisateur demande laide sur le champ texte text1 qui doit t tre dclar avec le mot cl WithEvents . La procdure suivante implmente lvnement :
Private Sub textBox_HelpRequested(ByVal textBox_HelpRequested( sender As Object, ByVal hlpevent As System.Windows.Forms.HelpEventArgs) Handles TextBox1.HelpRequested 'converti ti le paramtre pass en control Dim requestingControl As Control = CType(sender, Control) 'affiche le nom du controle MsgBox(CStr(requestingControl.name)) (requestingControl.name)) 'valide la gestion de lvnement hlpevent.Handled = True End Sub

Lobjet sender pass en paramtre rfrence lobjet lorigine de la demande daide. Icon: Dfinit licne lie au formulaire : cette dernire apparat dans la barre de titre.

IsMDIContainer: Dtermine si le formulaire est un conteneur MDI, cest dire sil est capable de contenir dautres fentres.

Dans le cas dun formulaire MDI, on doit spcifier le code afin dafficher dautres formulaires lintrieur. Le code suivant permet laffichage dun formulaire formul fils : dans cet exemple, Form2 est le formulaire MDI, Form1 et Form3 sont les formulaires enfant. Il faut galement paramtrer loption IsMdiContainer du Form2 True.
Private Sub Form2_Load(ByVal ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Dim f1 As New Form1 Dim f2 As New Form3 f1.MdiParent = Me Y f1.Show() f2.MdiParent = Me f2.Show() End Sub

Location: Cette objet dfini la position du formulaire par rapport son conteneur (cest dire lcran ou le formulaire parent dans le cas dapplication MDI). Deux proprits permettent de dfinir la position : X : distance entre le bord gauche du conteneur et le bord gauche du formulaire Y : distance entre le haut du conteneur contene et le haut du formulaire
12

FARIH Sad

[POO: VB.Net] ]

TDI

Locked: Dtermine si le formulaire est verrouill ou non : cette proprit est identique enabled mais elle ne grise pas lapparence du formulaire. MinimizeBox, MaximizeBox: MaximizeBox Dtermine si les boutons Agrandir et Rduire sont visibles. Leur affichage empchera laffichage du bouton daide.

MinimumSize, MaximumSize: MaximumSize Cet objet dfinit la taille minimale et maximale que peut avoir le formulaire. Cet objet est gnralement utilis pour viter que lutilisateur lutilisateur rduise la fentre au point de ne plus avoir accs aux contrles. Pour chaque objet, deux proprits sont disponibles : width (largeur) et height (hauteur). Opacity: Dfinit un pourcentage dopacit pour la fentre. Une valeur de 100% rend la fentre fentr opaque.

(Exemple avec50%) avec


ShowInTaskBar: Dtermine si un nouveau bouton est ajout dans la barre des tches lorsque la fentre est ouverte :

Size: Cet objet dfinit la taille du formulaire laide de deux proprits : width (largeur) et height (hauteur). Startposition: Dfinit la position de dpart lorsque la fentre est ouverte : Valeur
Manual CenterScreen

Description Position dfinie par la proprit location Centr par rapport lcran Situ lemplacement par dfaut de Windows et possde la taille par dfaut de Windows Centr par rapport la fentre ayant dclench louverture.

WindowsDefaultlocation Situ lemplacement par dfaut de Windows et possde la taille dfinie dans size WindowsDefaultBounds Centerparent

Text: Dtermine le texte e affich dans la barre de titre

13

FARIH Sad

[POO: VB.Net] ]

TDI

TopMost: Si cette option est active (true) le formulaire sera toujours au dessus de tous les autres formulaires, mme sil nest pas activ. Cette option se prte particulirement bien pour les botes outils qui doivent t toujours rester accessibles. TransparencyKey: Du meilleur effet, cette proprit dfinit la couleur de transparence du formulaire : si on spcifie la couleur jaune en tant que TransparencyKey, toutes les zones du formulaire jaune seront transparentes :

WindowState: Dtermine ltat du formulaire lors de louverture : Valeur


Normal

Description Le formulaire apparat avec sa taille standard

Minimize Le formulaire est rduit lors de louverture Maximize Le formulaire est en plein cran lors de louverture louvertu

ShowDialog: Affiche le formulaire en tant que feuille modale, cest dire quau niveau de lapplication, la fentre restera au premier plan tant quelle nest pas ferme.

c. Evnements
Les vnements correspondent au cycle de vie de lobjet formulaire. Ils Ils sont lists dans lordre chronologique. New: Lobjet formulaire est en cours de cration Load: Le formulaire ainsi que ses composants sont chargs mais il nest pas visible. Paint: Se produit lorsque le formulaire est redessin. Cet vnement peut apparatre appar plusieurs fois : par exemple au dmarrage et lorsque le formulaire rapparait devant un autre. Activated: Le formulaire rcupre le focus. Deactivate: Le formulaire perd le focus Closing: Le formulaire est en cours de fermeture, les diffrents lments lments le composant sont dtruits. Le formulaire est cependant encore visible. Closed: Le formulaire est ferm et maintenant invisible. Dispose: Lobjet formulaire est dtruit. Resize: Cet vnement survient lorsque le formulaire est redimensionn. Gnralement Gnralemen utilis pour modifier la taille des contrles le composant. Click: Lutilisateur clique sur le fond du formulaire DoubleClick: Lutilisateur double clique sur le fond du formulaire

4. Fonctions d'interface
On va prsent dcouvrir deux nouvelles fonctions, qui n'ont aucun quivalent dans les langages traditionnels (procduraux), car elles sont directement lies au fait que VB soit un langage bas sur l'interface Windows.

a. Les botes de dialogue


Les botes de dialogue intgres sont des feuilles modales (cest (cest dire quelles suspendent lexcution du programme jusqu leur fermeture) destines afficher une information ou demander une saisie. i. Boite de message La bote de message (MsgBox) permet laffichage dune information et donne la possibilit de configurer configu les boutons, le titre et licne associe.
MessageBox.Show(prompt, titre, type_boutons, icne, bouton_par_defaut)
14 FARIH Sad

[POO: VB.Net] ]

TDI

Titre Icne

Prompt

Type boutons Constantes de Retour La dfinition du type de boutons modifie laffichage mais permet la mthode .Show de retourner une valeur correspondant au bouton slectionner par lutilisateur.
Constantes de retour (membres de la classe DialogResult)

Types de bouton

Types de bouton (membres de la classe MessageBoxButtons)

Constante
Ok OkCancel AbortRetryIgnore YesNoCancel YesNo RetryCancel

Description Bouton Ok Seulement Boutons Ok et bouton annul Boutons Abandonner, Ressayer, Ignorer Boutons Oui, Non et Annuler Boutons Oui et Non Boutons Ressayer et Annuler

Constante
Ok Cancel Abort Retry Ignore Yes No

Description Bouton Ok Bouton Annuler Bouton Abandonner Bouton Ressayer Bouton Ignorer Bouton Oui Bouton Non

Le rle de cet argument est double : il doit indiquer d'une part quel est le jeu de boutons souhait, parmi les six disponibles ("Abandonner, Abandonner, Ressayer, Ignorer", OK", OK, Annuler", Ressayer, Annuler", Oui, Non", Oui, Non, Ignorer "OK OK "OK, Annuler "Ressayer, Annuler "Oui, Non "Oui, Annuler"). Il doit galement stipuler quelle illustration viendra ventuellement gayer votre bote messages, parmi Annuler les quatre possibles (Critical, Exclamation, Information, Question). En fait, l'argument attendu est de type Integer. Et chacune des possibilits de boutons et d'illustrations numres ci-dessus est associe par VB une valeur entire. Ds lors, pour choisir tel jeu de bouton, il suffit d'entrer comme argument l'entier correspondant. Et pour associer tel jeu de bouton telle illustration, il suffira d'additionner les deux valeurs correspondantes. L o a devient intressant, c'est qu'on n'est pas oblig de spcifier l'argument sous la forme d'un nombre entier. Cet entier peut donc tre crit sous une forme, celle d'une constante VB. VB Type dicne Bouton par dfaut Loption bouton par dfaut permet de dfinir le bouton qui sera slectionn par dfaut. Types dicne (membres de la classe MessageBoxIcon) Constante
Error

Aperu Bouton par dfaut (Membres de la classe MessageBoxDefaultButton)


Constante DefaultButton1

Exclamation

Description Premier bouton Second bouton Troisime bouton

Information

DefaultButton2 DefaultButton3

Question

Exemple 1
15 FARIH Sad

[POO: VB.Net] ]

TDI

MessageBox.Show("Le total de la commande s'lve 1000 Dhs", "Rsultat", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1) If MessageBox.Show("Continuer ?", "Confirmation", MessageBoxButtons.YesNo) = DialogResult.Yes Then MessageBox.Show("On a choisi Oui ") Else MessageBox.Show("On a choisi Non ") End If

Exemple 2
Public Class Form1 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click, Button2.Click 'En rcuprant le texte crit sur le bouton, on peut n'crire qu'une seule procdure Dim i, j As Integer Me.Visible = False ' on utilise donc la proprit text du paramtre sender i = MsgBox("On a choisi " & sender.text, vbInformation + vbOKOnly, "Excellent choix") j = MsgBox("Dsirez-on choisir nouveau ?", vbQuestion + vbYesNo, "Rejouer ?") If j = vbYes Then Me.Visible = True Else End End If End Sub End Class

ii. ii. Bote de saisie La bote de saisie (InputBox) permet la saisie dune chane de caractre par lutilisateur. Il est possible de paramtrer le titre, le texte affich ainsi que le texte saisi par dfaut. Titre Message

Valeur par dfaut


InputBox est une fonction, elle retourne la valeur saisie par lutilisateur o chane vide si le bouton Annuler

est utilis. La valeur retourne est toujours de type String. Les ventuels contrle de saisie devront tre fait par le programme une fois la valeur retourne.
Dim reponse As String = InputBox("le pays le plus beau du monde??", "Question pour un champion", "Ma...")

Il s'agit d'une fonction, dont les deux arguments de type String correspondent respectivement l'invite ("le

pays le plus beau du monde?") et au titre ("Question pour un champion") de la bote de saisie. Cette fonction renverra
toujours une valeur de type String. Pour obtenir le rsultat ci-dessus, on aura donc crit un code du genre :
Dim a = b = Rep a, b, rep As String " le pays le plus beau du monde??" "Question pour un champion" = InputBox(a, b)

Ce code attendra que le bouton OK (ou Annuler) Annuler soit cliqu, et stockera alors le contenu de la zone de saisie dans la variable Rep. Rep Exercice Ecrire un petit programme invitant l'utilisateur rpondre correctement la question pose, sinon il doit ressayer jusqu'obtention de la rponse voulue. Solution
Dim a, rep As String a = "maroc" rep = "" While (rep <> a)
16 FARIH Sad

[POO: VB.Net] ]

TDI

rep = InputBox("le pays le plus beau du monde??", "Question pour un champion", "Ma...") End While

Toujours est-il que la bote de message figurant plus haut peut ainsi tre programme comme :
a = "Jeu termin. Veut-on continuer ?" b = "Dernire vrification" rep = MsgBox(a, 3 + 32, b)

Ce qui n'est pas trs explicite. Mais on peut tout aussi bien - et mme mieux - crire :
a = " Jeu termin. Veut-on continuer ?" b = "Dernire vrification" rep = MsgBox(a, MsgBoxStyle.YesNoCancel + MsgBoxStyle.Question, b)

En fait, pour dsigner exactement les mmes valeurs Integer, on dispose : d'une part des noms gnraux du Framework .NET (ce sont les membres des numrations) numrations d'autre part des noms propres VB (ce sont les constantes VB). VB Rsultat des courses, on peut tout aussi bien employer les les uns que les autres, et crire :
a = " Jeu termin. Veut-on continuer ?" b = "Dernire vrification" rep = MsgBox(a, vbYesNoCancel + vbQuestion, b)

Passons maintenant au rsultat de la fonction Msgbox. Quelle valeur celle-ci renvoie-t-elle ? Le rsultat d'une fonction Msgbox, c'est le bouton sur lequel l'utilisateur a appuy pour la faire disparatre. disparatre Et c'est ce rsultat qui sera stock dans la variable Rep. Rep Sous quelle forme ce rsultat s'exprime-t-il ? Sous la triple forme d'un entier correspondant au bouton en question, d'une constante VB correspondant cet entier, ou du membre de l'numration .NET correspondant tout la fois l'Integer et la constante VB. Un petit coup d'il sur l'aide apprend ainsi que le clic sur le bouton OK correspond au renvoi par MsgBox de la valeur 1, autrement dit du membre MsgBoxResult.OK ou de la constante VB vbOK. De mme, le clic sur le bouton Annuler correspond au renvoi par MsgBox de la valeur 2, autrement dit du membre MsgboxResult.Cancel ou de la constante VB vbCancel.

b. Botes de dialogue communes


On aura sans doute remarqu que sous Windows, quel que soit le logiciel utilis, ou presque, certaines commandes possdent des airs de famille. Par exemple, lorsquon faites Fichier / Ouvrir, Ouvrir Fichier /Enregistrer, Enregistrer Fichier/ Fichier/ Imprimer, Imprimer et quelques autres encore, non seulement les fonctionnalits proposes sont les mmes, mais encore la prsentation de la bote de dialogue est rigoureusement identique d'une application l'autre, Lorsquon devra insrer une de ces "botes de dialogues" dans lapplication, nul besoin de la programmer : Windows, via Visual Studio, offre la possibilit d'utiliser directement son code, au travers d'une srie de classes: OpenFileDialog : correspond la bote de dialogue Fichier - Ouvrir SaveFileDialog : correspond aux botes de dialogue Fichier - Enregistrer et Fichier - Enregistrer Sous FolderBrowserDialog : correspond un explorateur de rpertoires (qui repre automatiquement la structure des rpertoires de la machine sur laquelle tourne l'application) FontDialog : correspond la bote de dialogue Police ColorDialog : correspond une bote de dialogue donnant accs aux couleurs personnalises PrintDialog : correspond la bote de dialogue Fichier - Imprimer PrintPreviewDialog : correspond la bote de dialogue Fichier - Aperu avant impression PrintPreviewControl : zone permettant d'afficher un Aperu avant impression PrintDocument : correspond la bote de dialogue Fichier - Imprimer PageSetupDialog : correspond la bote de dialogue Fichier - Mise en page Tous ces contrles, hormis PrintPreviewControl, ne se positionnent pas sur la Form, mais en-dehors. Pour les dclencher, il suffit d'utiliser dans le code la mthode ShowDialog. Naturellement, il est possible de paramtrer ces botes de dialogue via leurs proprits, et d'en rcuprer les rsultats, toujours via leurs proprits.Si

17

FARIH Sad

[POO: VB.Net] ]

TDI

on observe les diffrentes applications tournant sous Windows, on s'apercevra quelles utilisent toutes les mmes botes de dialogue standard (Enregistrer, trer, Ouvrir Imprimer ). i. Ouverture La bote de dialogue douverture permet la slection dun ou plusieurs fichiers physiques. La classe OpenFileDialog permet la gestion de cette bote de dialogue. Ouverture Enregistrement

Proprit
AddExtension CheckFileExist CheckPathExist DefaultExt FileName FileNames Filter

Description

Valeur

Boolen indiquant si lextension par dfaut doit tre automatiquement True ajoute la fin du fichier lors de lenregistrement Vrifie lexistence du fichier fichi Vrifie si le chemin fourni par lutilistaeur valide Extension par dfaut ajoute lorsquon tape un nom de fichier Chemin du fichier slectionn Chemin des fichiers slectionns Extension des fichiers accepts "tous|*.*| Fichier texte|*.txt" "C:\winnt" True "Slection du fichier" True True "gif"

InitialDirectory Dossier initial de recherche MultiSelect Title

Permet la slection de plusieurs fichiers Titre de la bote Description Affiche la fentre

Mthode
ShowDialog

Le code suivant paramtre la bote de dialogue en acceptant uniquement les fichiers images (gif ou jpg). La slection multiple est autorise et la liste des fichiers est affiche la fin:
Private Sub Form1_Load(ByVal ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Dim dlg As OpenFileDialog dlg = New OpenFileDialog 'paramtrage de la bote dlg.Title = "Veuillez slectionner l'image" dlg.DefaultExt = "gif" dlg.Filter = "Image gif|*.gif|Image Jpeg|*.jpg" dlg.Multiselect = True dlg.CheckFileExists = True 'affichage de la boite dlg.ShowDialog() 'affichage des fichiers selectionns Dim fichier As String For Each fichier In dlg.FileNames MsgBox(fichier)
18 FARIH Sad

[POO: VB.Net] ]

TDI

Next End Sub

ii. ii. Enregistrement La bote de dialogue denregistrement est identique la bote de dialogue douverture excepte la proprit Mthode qui disparat. Pour ouvrir une bote denregistrement, utiliser la classe SaveFileDialog :
Public Class Form1 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Dim dlg As SaveFileDialog dlg = New SaveFileDialog 'paramtrage de la bote dlg.Title = "Enregistrer le fichier" dlg.DefaultExt = "gif" dlg.Filter = "Image gif|*.gif|Image Jpeg|*.jpg" 'affichage de la boite dlg.ShowDialog() 'affichage des fichiers selectionns MsgBox("le fichier sera enregistr dans: " & dlg.FileName) End Sub End Class

iii. iii. Choix dune couleur Cette bote de dialogue permet lutilisateur de choisir une couleur dans un panel. Deux versions de cette bote de dialogue existent : Version simple Version complte

Dans les deux cas, on doit utiliser la classe ColorDialog . Proprit


Color Fullopen

Description Dfinit la couleur par dfaut affiche et retourne la couleur slectionne par lutilisateur Boolen dfinissant si la bote de dialogue saffiche en mode complet ou non

SolidColorOnly Boolen naffichant que les couleurs gres par la carte graphique

Lexemple suivant affiche une bote de dialogue et modifie la couleur de fond du formulaire en fonction du choix de lutilisateur :
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Dim c As New ColorDialog c.FullOpen = False c.Color = Me.BackColor c.ShowDialog() Me.BackColor = c.Color End Sub

iv. iv. Choix dune police Cette bote de dialogue permet la slection de tous les paramtres concernant le formatage de chane de caractre (police, taille, gras).
19 FARIH Sad

[POO: VB.Net] ]

TDI

Pour afficher la bote de dialogue, utiliser la mthode ShowDialog . Proprit


ShowEffects ShowColor MinSize MaxSize Font Color

Description Boolen spcifiant si lutilisateur peut dfinir les effets (gras ) Boolen spcifiant si lutilisateur peut dfinir la couleur Taille minimale des caractres Taille ille maximale des caractres Police par dfaut et police retourne Couleur par dfaut et couleur retourne

5. Button
On retrouve pour les contrles crs partir de la classe Button les proprits gnrales dj voques cici dessus pour les Form : Name, bien sr, mais aussi Text, Size, Location, Visible et bien d'autres. Si la classe Button on intresse, ce n'est pas tant pour ses proprits que pour sa capacit grer un certain nombre d'vnements, commencer par le plus frquent d'entre eux e : Click. On va donc pouvoir grer des procdures dclenches automatiquement par le clic sur un bouton, Exercice 1
Public Class Form1 Private Sub B1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles B1.Click If B1.Top = 24 Then B1.Top = 104 Else B1.Top = 24 End If End Sub End Class

Exercice 2
Public Class Form1 Private Sub Button1_Click(ByVal ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Button1.Visible = False Button2.Visible = True End Sub Private Sub Button2_Click(ByVal ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click Button2.Visible = False Button1.Visible = True End Sub End Class

6. Label
Le Label correspond une simple tiquette pose sur une Form (gnralement, pour clairer l'utilisateur sur tel ou tel point, commenter une image ou une zone, etc.) Il est gnralement utilis pour afficher le rle des diffrents contrles. Il ne s'agit pas de zones de saisie pour l'utilisateur c'est--dire qui ne sera pas ditable par lutilisateur. lutilisateur Ce qui n'empche pas le contenu d'un Label de pouvoir tre modifi par le code en cours d'excution, ni le Label de pouvoir recevoir un certain tain nombre d'vnements, dont le Click. Signalons toutefois trois proprits que possde la classe Label :

20

FARIH Sad