Explorer les Livres électroniques
Catégories
Explorer les Livres audio
Catégories
Explorer les Magazines
Catégories
Explorer les Documents
Catégories
Net] ]
TDI
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.
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
[POO: VB.Net] ]
TDI
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
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
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.
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
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.
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
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.
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
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 :
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.
[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
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
Exclamation
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
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.
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"
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
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
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
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