Académique Documents
Professionnel Documents
Culture Documents
Atelier 2 - Creer Sa Premiere Application VB NET PDF
Atelier 2 - Creer Sa Premiere Application VB NET PDF
VB.NET
http://msdn.microsoft.com/vbasic
Page 1 sur 94
Microsoft
SOMMAIRE
INTRODUCTION ................................................................................................................................................... 3
1.1
1.2
2.2
2.3
2.4
3.2
3.3
3.4
Printemps 2008
Coach VB.NET
Page 2 sur 94
Microsoft
INTRODUCTION
CONTEXTE FONCTIONNEL
Rappel du contexte fonctionnel du tutorial du coach VB
Lobjectif du tutorial du Coach VB est daccompagner les dveloppeurs la dcouverte et la prise en
main du langage Visual Basic (VB) pour la construction dapplications avec une approche oriente
objet.
Pour rappel, vous pouvez reprer facilement deux caractristiques importantes du langage laide
des logos suivants en marge :
Au mieux vous devez disposer dun bout de feuille issu dune runion qui dcrit linterface de
lapplication que vous devez raliser, sur laquelle a abouti lanalyse fonctionnelle. Cela ressemblerait
ceci :
Printemps 2008
Coach VB.NET
Page 3 sur 94
Microsoft
Printemps 2008
Coach VB.NET
Page 4 sur 94
Microsoft
Ensuite lapplication devra afficher le formulaire principal de lapplication avec la taille dfinie et une
barre de menu contenant les lments standards que lon trouve dans les applications Windows.
427 pixels
Titre de la fentre
727 pixels
Enfin, nous mettrons en vidence lexcution de lapplication par une petite icne dans la zone de
notification dtat de la barre des tches de Windows, sur laquelle nous accrocherons un menu
contextuel pour permettre lutilisateur de fermer lapplication.
Printemps 2008
Coach VB.NET
Page 5 sur 94
Microsoft
CONTEXTE TECHNIQUE
Dans cet atelier nous allons mettre de ct (momentanment car nous traiterons le sujet dans les
prochains ateliers de ce tutorial) le traitement des donnes pour nous concentrer essentiellement sur
la mise en place de la structure de base dune application Windows crite en Visual Basic.
Nous allons crer le formulaire principal, configurer son mode de dmarrage ainsi que la faon dont
sarrte lapplication. Nous en profiterons pour aborder les principes de programmation essentiels de
la programmation dite vnementielle.
Printemps 2008
Coach VB.NET
Page 6 sur 94
Microsoft
La solution de cet atelier est disponible dans le rpertoire ..\Atelier 2\Solution. Les fichiers utiles,
auxquels font rfrence les exercices sont disponibles dans le rpertoire ..Atelier 2\Fichiers utiles.
Utiliser le Concepteur de projets de Visual Studio pour configurer le dmarrage et larrt dune
application,
Objectif
Lobjectif de ce premier exercice est de dmarrer un premier projet de dveloppement de type
Application Windows Forms et den comprendre les principes de base.
Contexte fonctionnel
Cet dans ce premier exercice que nous allons crer un cran de dmarrage qui saffichera quelques
secondes seulement avant laffichage du formulaire principal de lapplication :
Printemps 2008
Coach VB.NET
Page 7 sur 94
Microsoft
Droulement de lexercice :
1.
Crez une solution de dveloppement nomme Atelier 2 avec un projet de type Application
Windows :
Lancez Visual Studio partir du menu Dmarrer > Tous les programmes >
Microsoft Visual Basic 2008 Express Edition.
Crez un nouveau projet depuis loption Crer : > Projet de la page de dmarrage
ou partir du menu Fichier > Nouveau projet...
Printemps 2008
Coach VB.NET
Page 8 sur 94
Microsoft
Modle du projet
Nom du projet
Ce modle de projet fait rfrence aux Windows Forms. Savez-vous en quoi consiste
cette technologie ?
Dans Windows Forms, il y a :
-
Donc trs succinctement, dvelopper une application Windows Forms revient dessiner
un ou plusieurs formulaires puis coder des traitements pour rpondre aux diffrentes
actions ralises par lutilisateur avec la souris ou le clavier sur ces formulaires.
Printemps 2008
Coach VB.NET
Page 9 sur 94
Microsoft
Pour vous aider dans cette tche, le Framework .NET vous fournit toute la mcanique
de base de fonctionnement de ce type de formulaire de faon ce que vous perdiez le
moins de temps possible les dessiner et surtout pour que vous puissiez vous
concentrer sur la logique mtier de votre application. Ce sont les Windows Forms
comprenant de multiples classes, un Concepteur de formulaire et tout ce qui peut vous
aider dans les tches de programmation courantes de ce type dapplication.
Printemps 2008
Coach VB.NET
Page 10 sur 94
Microsoft
Fentre
du
Concepteur
Windows Forms qui va nous
servir dessiner le formulaire
Form1.
Pour en savoir plus sur loutil de design de formulaires clients Concepteur Windows
Forms :
http://msdn.microsoft.com/fr-fr/library/e06hs424.aspx
Sauvegardez tout de suite le projet et crer une solution en cliquant sur licne
dans la barre doutils standard de Visual Studio.
Sauvegarde de la solution
Printemps 2008
Page 11 sur 94
Microsoft
Par dfaut vous devez retrouver le chemin que vous avez spcifi dans la bote de
dialogue doptions de Visual Studio dans lexercice 3.1 de latelier 1 du tutorial.
Cest aussi ce moment l que vous pouvez demander la cration dune solution en
cochant la case Crer le rpertoire pour la solution.
Coach VB.NET
Page 12 sur 94
Microsoft
dmarrer.
Droulement de lexercice :
Pour rappel, cette fentre que nous avons dj eu loccasion dafficher dans latelier
prcdent de ce tutorial, centralise lensemble des proprits et paramtres de votre
projet. Dans latelier 1, nous lavons utilis pour ajouter au projet Console Windows une
rfrence la dll du Calculateur ou pour configurer des options de compilation.
Printemps 2008
Coach VB.NET
Page 13 sur 94
Microsoft
Notez que dans ltat actuel du projet qui ne comporte quun seul formulaire, il ny a pas
dautre possibilit dans la liste des formulaires de dmarrage. Mais si vous dsactivez la
case Activer linfrastructure de lapplication, une nouvelle option est disponible dans
cette mme liste qui sintitule alors Objet de dmarrage.
Printemps 2008
Coach VB.NET
Page 14 sur 94
Microsoft
La
case
doit
tre
dcoche pour que le
contenu de la liste
change.
Loption supplmentaire Sub Main serait utile pour crire une fonction de dmarrage
personnalise votre convenance. Celle-ci pourrait tre dfinie dans une classe
(moyennant
le
mot
cl
Shared)
ou
dans
un
module.
Pour afficher le formulaire Form1 partir dune telle mthode utiliser la mthode Run()
de la classe Application :
Code VB
Sub Main()
Application.Run(New Form1())
Coder ici les autres actions excuter au lancement de lapplication
End Sub
Printemps 2008
Coach VB.NET
Page 15 sur 94
Microsoft
2. Renommez la fentre principale du projet pour quelle soit clairement reconnaissable comme
tant le point dentre de lapplication :
dans la barre
Visual Studio commence par gnrer lapplication. Vous pouvez observer en bas
gauche de lcran les messages relatifs au processus de gnration :
Printemps 2008
Coach VB.NET
Page 16 sur 94
Microsoft
du formulaire.
Printemps 2008
Coach VB.NET
Page 17 sur 94
Microsoft
Modle dcran de
dmarrage
Printemps 2008
Coach VB.NET
Page 18 sur 94
Microsoft
Notez que le modle Windows Form sur lequel est bas votre formulaire Main est
propos toute droite de la fentre par Visual Studio. Mais ne perdez pas de vue quun
projet Windows Forms peut contenir aussi beaucoup dautres types dlments, ce qui
explique le nombre de modles que propose cette fentre !
Vous y trouvez par exemple un modle de cration de classe, dont nous verrons lutilit
par la suite dans ce tutorial ; et pourquoi pas aussi un modle dEcran de dmarrage,
bas lui-mme sur le modle Windows Form Il sagit dun formulaire dessin par
dfaut avec les dimensions et les zones qui caractrisent ce type de fentre.
Vous obtenez en effet un cran constitu par dfaut dune image, dune zone de titre de
lapplication et des informations de version et de copyright.
Comment faire pour afficher ce formulaire pendant une dure limite au dmarrage de
lapplication ?
Vous avez deux possibilits :
-
Printemps 2008
La premire, est de vous reposer sur Visual Studio qui, ne loublions pas,
Coach VB.NET
Page 19 sur 94
Microsoft
Mais gardez toujours lesprit que tout ce que vous faites avec laide de Visual
Studio, peut videmment tre fait sans lui, tout simplement en programmant
directement les ordres quivalents par code.
Cette autre approche par code est gnralement un peu plus longue mais
permet daffiner bien davantage le rsultat. Et grce aux innombrables classes
fournies par le .NET Framework, il nest pas utile de tout rcrire de zro .
dmarrage
du
projet
Vous pouvez aussi cliquer sur longlet Coach.Editeur sur la surface de travail si vous navez
pas ferm le Concepteur de projets auparavant :
Printemps 2008
Coach VB.NET
Page 20 sur 94
Microsoft
Visual Studio affiche pendant quelques secondes notre formulaire de dmarrage. Cest
cool !
Printemps 2008
Coach VB.NET
Page 21 sur 94
Microsoft
Enfin, au bout de quelques secondes, cest au tour du formulaire principal de notre projet
de safficher :
Printemps 2008
Coach VB.NET
Page 22 sur 94
Microsoft
du formulaire Form1.
Juste une petite question : est-ce que vous tes certain que ctait bien votre
formulaire SplashScreen qui sest affich au dmarrage ?
Printemps 2008
Coach VB.NET
Page 23 sur 94
Microsoft
Comment se fait-il que le titre de lapplication soit Coach.Editeur, que lcran indique un
numro de version 1.00 et un copyright avec lanne 2008 ?
Pour rappel, votre formulaire ressemblait ceci lorsque que vous lavez dessin :
Lexplication est simple : le modle dlment que nous avons utilis pour construire
lcran de dmarrage ne sest pas content de dessiner un formulaire de dmarrage
type. Il vous a fourni en mme temps le code de traitement qui contrle le comportement
du formulaire. Ce dernier consiste afficher les informations de lapplication dans les
zones correspondantes de lcran.
Printemps 2008
Coach VB.NET
Page 24 sur 94
Microsoft
Printemps 2008
Coach VB.NET
Page 25 sur 94
Microsoft
Printemps 2008
Coach VB.NET
Page 26 sur 94
Microsoft
En fait, un formulaire Windows nest rien dautre quune classe dobjet. Nous allons voir de quelle
manire nous pouvons travailler sur cette classe pour lenrichir.
Droulement de lexercice :
Que se passe-t-il ?
Le Concepteur de formulaire (ou concepteur de vues) de Visual Studio vous affiche
linterprtation graphique du code de dfinition de la classe. Cette reprsentation
WISIWIG est trs utile pour dessiner rapidement le formulaire mais dans les coulisses,
tout ce que vous dessinez est automatiquement transcrit au niveau du fichier de code de
la classe.
Printemps 2008
Coach VB.NET
Page 27 sur 94
Microsoft
Etendez le nud
du fichier SplashScreen.vb et double cliquez sur le fichier
SplashScreen.Designer.vb.
Dfinition de la classe
Coach VB.NET
Page 28 sur 94
Microsoft
du Copyright.
Le code gnr ici est exactement celui que nous devrions dvelopper la main si nous
voulions faire lquivalent de ce que fait le gnrateur du Concepteur de formulaire.
Attention, il nest pas interdit d aller y jeter un coup dil, mais ne vous lancez pas le
modifier si vous ne savez pas ce que vous faites, sauf pour corriger des ventuelles
erreurs de compilation lies des destructions intempestives de contrles par exemple.
Pour viter de nous embrouiller, Visual Studio nous demande de coder le comportement
du formulaire dans un autre fichier de code spar de celui gnr par le Concepteur de
formulaire. O se trouve cet autre fichier ?
Il sagit du fichier SplashScreen.vb. Pourtant, nous avons vu que lorsque lon double
Printemps 2008
Coach VB.NET
Page 29 sur 94
Microsoft
clique sur ce fichier, Visual Studio nous affiche par dfaut la reprsentation visuelle du
formulaire. En fait, cest loption par dfaut parce quen gnral il faut bien commencer
par dessiner le formulaire avant dcrire son comportement .
Pour voir le code du formulaire, vous pouvez suivre plusieurs chemins :
-
Positionnez le curseur
de la souris en dehors
du formulaire pour viter
de vous retrouver dans
le contexte dun contrle
daffichage
Printemps 2008
Coach VB.NET
Page 30 sur 94
Microsoft
Ou encore Visual Studio vous propose dafficher le fichier slectionn par son
menu Affichage > Code.
Dans ce fichier de code, vous retrouvez la dfinition de la classe du mme nom que dans
le fichier SplashScreen.Designer.vb.
Printemps 2008
Coach VB.NET
Page 31 sur 94
Microsoft
Dans le second fichier, le mot Partial est omis mais si lon voulait tre rigoureux il devrait apparatre.
VB nautorise dailleurs pas plus dune dclaration omettre le mot cl.
La classe SplashScreen est une classe dite partielle, cest--dire que la dfinition de
la classe est divise en plusieurs dclarations.
Pour tout savoir sur les classes partielles en langage VB, cliquez sur :
http://msdn.microsoft.com/fr-fr/library/yfzd5350.aspx
Printemps 2008
Coach VB.NET
Page 32 sur 94
Microsoft
Recherchez par exemple les lignes de code qui rcupre le titre de lapplication :
Dun point de vue programmation objet, les classes de lespace de nom My sont
vraiment trs faciles utiliser car elles nont pas besoin dtre instancies. En quelque
sorte, elles vous fournissent des objets immdiatement oprationnels sur lesquels
vous pouvez directement travailler. Nous reparlerons de cette notion dinstanciation
lorsque nous aborderons les principes objet.
Printemps 2008
Coach VB.NET
Page 33 sur 94
Microsoft
Dune manire gnrale, cest une bonne pratique de fermer au fur et mesure les
fichiers ouverts sur la surface de travail sur lesquels vous ne travaillez plus.
Faites un clic droit sur la zone > Proprits ou appuyez la touche F4 pour faire
apparatre la fentre de proprits de llment dinterface que vous avez slectionn.
Dans la fentre Proprits qui apparat sur la droite, vrifiez tout dabord que vous
tes bien sur le bon objet, dont le nom et le type saffiche dans la liste droulante en
haut.
Printemps 2008
Coach VB.NET
cliquant
sur
le
fichier
Page 34 sur 94
Microsoft
Liste droulante
Notez que la fentre Proprits est dote dune barre doutils dont les boutons sont les
suivants :
Printemps 2008
Le bouton
Le bouton
Le bouton
Le bouton
affiche les vnements de lobjet slectionn cette vue sert
ajouter facilement des mthodes de rponses aux vnements (nous
reviendrons sur ce point plus tard) ;
Coach VB.NET
Page 35 sur 94
Microsoft
Le bouton
affiche une page de proprits complmentaires de lobjet (si
toutefois il en existe une bien sr).
Dans la fentre de Proprits, les proprits affiches en gras sont celles dont la valeur
a t modifie par rapport la valeur fournie par dfaut par lobjet dinterface. Du coup,
pour chacune de ces proprits dont la valeur indique est diffrente de la valeur par
dfaut, le Concepteur de formulaire gnre une (ou plusieurs) ligne(s) dans le fichier
SpashScreen.Designer.vb pour coder le paramtrage correspondant. Merci Visual
Studio !
Nous, ce qui nous intresse est de changer limage de fond de la zone daffichage. Pour
cela, vous disposez de la proprit BackgroundImage qui apparait en gras puisquelle
a t renseigne avec limage que vous voyez sur lcran de dmarrage.
Slectionnez le bouton
Printemps 2008
Coach VB.NET
Page 36 sur 94
Microsoft
Visual Studio nous assiste dans la slection de limage qui se comporte comme une
ressource embarque du projet et est expose au moment de lexcution en tant
quobjet System.Drawing.Bitmap.
Retrouvez le fichier Melle coach VB.gif reprsentant Melle coach VB dans le dossier
..\Atelier 2\Fichiers utiles fourni avec latelier.
Printemps 2008
Coach VB.NET
Page 37 sur 94
Microsoft
Cliquez Ouvrir.
Cliquez OK.
Printemps 2008
Coach VB.NET
Page 38 sur 94
Microsoft
Printemps 2008
Coach VB.NET
Page 39 sur 94
Microsoft
Droulement de lexercice :
1. Configurez Visual Studio pour que lapplication sarrte lorsque lutilisateur dcide de fermer le
formulaire principal de lapplication :
Printemps 2008
Coach VB.NET
Page 40 sur 94
Microsoft
Une seconde valeur A la fermeture du dernier formulaire vous est propose dans
cette liste pour le cas o lapplication comprendrait plusieurs formulaires. Dans ce cas, il
serait certainement plus logique dinterrompre le programme lorsque tous les formulaires
sont ferms.
Nous verrons dans la suite de cet atelier comment contrler larrt de lapplication par
code. Nous pourrons ainsi proposer lutilisateur de quitter lapplication de deux
manires :
-
Mais pour mettre au point ces deux scnarios, il faut que nous enrichissions le
formulaire avec ce quon appelle des contrles Windows Forms. Cest lobjet de
lexercice suivant.
Printemps 2008
Coach VB.NET
Page 41 sur 94
Microsoft
un
formulaire
et
sappuie
sur
la
classe
System.Windows.Forms.BindingSource du Framework .NET.
Pour avoir une vue densemble des contrles et composants Windows Forms, rendezvous ladresse suivante :
http://msdn.microsoft.com/fr-fr/library/ettb6e2a.aspx
Enfin, sachez que vous pouvez bien videmment dvelopper vos propres contrles
personnaliss dans lobjectif de les partager ou de les rutiliser dune application une
autre. Pour explorer ce sujet, rendez-vous sur le lien : http://msdn.microsoft.com/frfr/library/6hws6h2t.aspx
Printemps 2008
Coach VB.NET
Page 42 sur 94
Microsoft
Objectif
Dans cet exercice, nous vous proposons de dessiner le formulaire principal de lapplication en utilisant
quelques contrles standards du Framework .NET.
Contexte fonctionnel
Lobjectif de cet exercice est de modifier le titre et les dimensions de la fentre principale de
lapplication et dajouter celle-ci deux types de menus :
-
Printemps 2008
Coach VB.NET
Page 43 sur 94
Microsoft
Un menu contextuel, qui va safficher quand lutilisateur fera un clic droit sur une icne
saffichant dans la zone de notification (en bas droite de lcran) :
Droulement de lexercice :
Faites un clic droit nimporte o sur le formulaire > Proprits ou appuyez la touche
F4.
Dans la fentre Proprits qui apparat sur la droite, vrifiez dans la liste dobjets que
vous tes sur lobjet Main de type System.Windows.Forms.Form.
Printemps 2008
Coach VB.NET
Page 44 sur 94
Microsoft
Pour saisir la valeur dune proprit, il suffit de cliquer sur lintitul de la proprit et vous
pouvez dmarrer aussitt la saisie. En effet, pour gagner du temps, il nest pas
ncessaire de positionner le curseur dans la zone de texte de saisie de la valeur.
Validez par la touche Entre ou cliquez ailleurs dans Visual Studio. Notez que le titre
du formulaire reproduit immdiatement le nouvel intitul.
Nous allons retrouver cette proprit Text au niveau de nombreux contrles. Elle
rfrence toujours ce qui est affich par le contrle lcran, que ce soit le texte dun
libell, le titre dun bouton etc
Printemps 2008
Coach VB.NET
Page 45 sur 94
Microsoft
Valeurs en
pixels
Printemps 2008
Coach VB.NET
Page 46 sur 94
Microsoft
Printemps 2008
Coach VB.NET
Page 47 sur 94
427 pixels
Microsoft
727 pixels
Tous les contrles Windows Forms sont disponibles dans la Boite outils de Visual
Studio qui saffiche en standard sur la gauche de votre cran. Si elle nest pas visible,
vous pouvez lafficher en cliquant le menu Affichage > Boite outils ou avec la
combinaison de touches Ctrl+Alt+X.
Printemps 2008
Coach VB.NET
Page 48 sur 94
Microsoft
Droulement de lexercice :
1. Dessinez une barre de menu sur le formulaire Main laide dun contrle MenuStrip :
La Boite outils affiche uniquement les composants qui sont disponibles compte tenu
du fichier en cours dans la surface de travail. Par exemple, si la page active est une
page de code, la Boite outils est vide. Voil pourquoi il est important de commencer
par afficher le Concepteur de formulaire de la fentre sur laquelle vous voulez travailler.
Printemps 2008
Coach VB.NET
Page 49 sur 94
Microsoft
Si vous ne trouvez pas le contrle qui vous intresse dans la liste de la bote outils,
vous pouvez lajouter (ou linverse len retirer) en faisant un clic-droit dans une
rubrique quelconque de la Boite outils > Choisir les lments :
Printemps 2008
Coach VB.NET
Page 50 sur 94
Microsoft
La bote de dialogue Choisir des lments de bote outils vous aide slectionner
les composants ou contrles dont vous avez besoin. La bote peut prendre un certain
temps safficher du fait de la multitude de contrles charger dans la liste.
Vous pouvez ajouter des composants issus dune bibliothque de contrles que vous
auriez vous-mme dvelopper, de nombreuses socits tierces Microsoft, ou de sites
communautaires comme http://windowsclient.net/. Sur la page daccueil de ce dernier,
slectionnez la galerie de contrles Control Gallery pour consulter la liste de contrles
et dexemples tlchargeables.
Printemps 2008
Coach VB.NET
Page 51 sur 94
Microsoft
Printemps 2008
Coach VB.NET
(sauf si
Page 52 sur 94
Microsoft
Contrle de menu
Zone de dpt des contrles
Si vous cliquez maintenant nimporte o sur le formulaire, la barre de menu sous la barre
de titre disparait.
Printemps 2008
Coach VB.NET
Page 53 sur 94
Microsoft
Ceci sexplique par le fait que le menu ne comporte pour linstant aucune option donc
Visual Studio ne sait pas comment le dessiner. Do lintrt de la zone de dpt au
bas du formulaire, qui permet de retrouver quoiquil arrive le contrle, de faon
notamment travailler sur les proprits de celui-ci.
Faites un clic-droit sur le contrle menuStrip1 > Proprits ou appuyer sur F4.
Licne
classe les
proprits par catgorie selon
leur fonction.
Printemps 2008
Coach VB.NET
Page 54 sur 94
Microsoft
Le nom des contrles est trs important puisquil sert identifier lobjet correspondant
dans le code. Soyez donc vigilant quant la faon dont vous nommez vos contrles et
composants pour les retrouver facilement au moment du codage. Une bonne pratique
consiste tablir un plan de nommage prcis que vous pouvez suivre ds que vous
avez dfinir un nom de variable.
2. Ajoutez les lments de menu standard de Windows sur la barre de menu mainMenuStrip :
Faites un clic droit sur la barre de menu > Insrer des lments standard.
Printemps 2008
Coach VB.NET
Page 55 sur 94
Microsoft
Vous obtenez :
la
Comme vous pouvez le constater avec les lments standards ajouts par Visual
Studio, le contrle MenuStrip permet de construire des menus dynamiques trs riches
contenant des images, des informations de raccourcis clavier, des barres despacement
etc Si vous cliquez par exemple la flche
qui apparat droite de la zone
lorsque vous la slectionner, une liste droulante montre quil est
possible de crer une zone de saisie (base sur le contrle standard TextBox) ou une
liste de valeurs (base sur le contrle standard ComboBox) en tant quoption de menu.
Loption MenuItem cr une option de menu classique matrialise par un libell.
Printemps 2008
Coach VB.NET
Page 56 sur 94
Microsoft
Vous vous souvenez que nous avons configur prcdemment le mode darrt de
lapplication de manire dclarative dans le Concepteur de projets pour que lapplication
sarrte la fermeture du formulaire de dmarrage.
Printemps 2008
Coach VB.NET
Page 57 sur 94
Microsoft
Contexte fonctionnel
Dans cet exercice, nous allons crire le code de fermeture de lapplication associ au clic sur loption
de menu Fichier > Quitter de la barre de menu du formulaire Main.
Droulement de lexercice :
Printemps 2008
Coach VB.NET
Page 58 sur 94
Microsoft
Printemps 2008
Coach VB.NET
Page 59 sur 94
Microsoft
Rappelez vous il y a deux approches possibles, dclarative et par code. En fait, dans notre
cas cest le Concepteur de formulaire qui a automatiquement paramtr la procdure pour
nous, et ce en utilisant la mthode dclarative.
Dans le menu de Visual Studio, cliquez sur Edition > Recherche rapide et rentrez le
nom de la variable QuitterToolStripMenuItem dont on souhaite retrouver la
dfinition.
Printemps 2008
Coach VB.NET
Page 60 sur 94
Microsoft
Printemps 2008
Coach VB.NET
Page 61 sur 94
Microsoft
Code VB
Coach VB.NET
Page 62 sur 94
Microsoft
End Sub
End Class
soulign (underscore)
<nom de la variable>_<nom de lvnement>
point
<nom de la variable>.<nom de lvnement>
En fait le nom de la procdure importe peu. Vous pourriez par exemple remplacer sans
hsiter QuitterToolStripMenuItem_Click par Quitter.
En revanche, le nom de lvnement auquel vous laccrochez est trs important, de
mme que la signature de la procdure.
Printemps 2008
Coach VB.NET
Page 63 sur 94
Microsoft
Lorsque vous double cliquez sur un objet en mode Design, Visual Studio gnre
automatiquement la procdure de rponse lvnement par dfaut associ un objet,
ici lvnement Click sur un objet de type System.Forms.ToolStripMenuItem. Mais ce
type dobjet dispose de bien dautres vnements qui vous permettent dinteragir sur
son fonctionnement.
Nom de la classe
lobjet
Nom de la mthode
Tous les autres lments de la liste sont des objets qui font partie de votre formulaire,
pour la plupart gnrs par laction dajout des lments standards au menu
mainMenuStrip. Le premier lment de la liste, (Main Evnements) correspond
lobjet formulaire lui-mme pour lequel le Framework .NET fournit toute une batterie
dvnements caractrisant le cycle de vie du formulaire.
Printemps 2008
Coach VB.NET
Page 64 sur 94
Microsoft
Lvnement Click apparait en caractres gras car Visual Studio dtecte que vous avez
dj un gestionnaire pour cet vnement. Si vous cliquez sur cette option, Visual Studio
amne le curseur lemplacement du gestionnaire dans le code.
Tous les autres vnements ne sont pas en gras car aucun gestionnaire nexiste encore
pour ceux-ci dans lapplication. Si vous cliquez sur un vnement quelconque, Visual
Studio gnre la procdure de rponse lvnement et lajoute votre code avec la
signature adquate .
Au fait, quest ce quon entend par signature et pourquoi est-elle importante pour dfinir
un gestionnaire dvnement ?
La signature dune procdure est sa ligne de dclaration comprenant :
-
Pour les gestionnaires dvnement, cest trs facile, car la signature du gestionnaire
Printemps 2008
Coach VB.NET
Page 65 sur 94
Microsoft
Code VB
End Sub
o :
-
Printemps 2008
Coach VB.NET
Page 66 sur 94
Microsoft
Vous retrouvez galement tous les vnements disponibles sur un objet partir de la
fentre de Proprits de lobjet en mode Design.
Slectionnez le menu Quitter puis faites un clic droit > Proprits pour afficher la
fentre de proprits pour cet objet.
Printemps 2008
Coach VB.NET
Page 67 sur 94
Microsoft
Printemps 2008
Coach VB.NET
Page 68 sur 94
Microsoft
Code VB
Printemps 2008
Coach VB.NET
Page 69 sur 94
Microsoft
Voici un lien trs intressant pour ne pas confondre Me avec dautres mots cl qui lui
ressemblent et qui pourraient donc porter confusion :
http://msdn.microsoft.com/fr-fr/library/20fy88e0.aspx
Printemps 2008
Coach VB.NET
Page 70 sur 94
Microsoft
Vous vous rappelez que Main est une classe partielle (mot cl Partial) cest--dire
quelle est dfinie en plusieurs morceaux rpartis dans plusieurs fichiers. Peut-tre que
la mthode que nous cherchons est dfinie dans lautre fichier, Main.Designer.vb ?
A partir de lExplorateur
Main.Designer.vb.
de
solutions,
ouvrez
nouveau
le
fichier
En revanche, la dclaration de la classe en haut du fichier est un peu plus complte que
celle que nous avons dans le fichier Main.vb. Elle montre notamment que la classe
Main hrite (Inherits) dune classe du Framework .NET appele Form dans lespace de
nom System.Windows.Forms.
Coach VB.NET
Page 71 sur 94
Microsoft
Lhritage est une association entre deux classes qui assure lutilisation par une classe
des fonctionnalits dj dfinies dans lautre classe, histoire de ne pas tout rcrire.
Nous reviendrons sur ce concept de base de la programmation orient objet plus tard
dans ce tutorial.
Dans notre cas, retenons que notre classe Main hrite de la classe Form fournie par
le Framework .NET de faon hriter de toutes les caractristiques et du
comportement standard dun formulaire Windows Forms. Sans cet hritage, vous
devriez construire le formulaire de A Z en crant des proprits pour dfinir sa taille,
son titre etc et en dcrivant son comportement tel que louverture ou la fermeture du
formulaire.
Grce au Framework .NET, nous pouvons donc utiliser une mthode Close qui vient de
la classe System.Windows.Form.Form dans laquelle est cod lordre de fermeture du
formulaire.
Cliquez le menu Fichier > Quitter. Le formulaire doit se fermer et dans la foule,
lexcution de lapplication doit sarrter.
Printemps 2008
Coach VB.NET
Page 72 sur 94
Microsoft
Bravo ! Vous commencez avoir une application qui roule ! Elle dmarre avec un cran de dmarrage
et sarrte proprement avec les menus de la barre de menu.
Contexte fonctionnel
Dans cet exercice, nous allons rajouter une icne dans la zone de notification dtat de la barre des
tches de Windows en bas droite du bureau, qui atteste que notre application est en cours
dexcution. Lorsque lutilisateur clique sur licne, un menu contextuel lui propose des options
standards lui permettant de quitter lapplication et de redimensionner la fentre principale.
Ajout dune icne de notification au programme, qui saffiche dans la zone de notification de
Windows au moment de lexcution.
Printemps 2008
Coach VB.NET
Page 73 sur 94
Microsoft
Droulement de lexercice :
Printemps 2008
Coach VB.NET
Page 74 sur 94
Microsoft
Printemps 2008
Modifiez galement la proprit Text avec la valeur Editeur du Coach VB. Ce texte
apparatra en aide rapide ( tooltip ) lorsque le pointeur de souris sera au dessus de
licne.
Coach VB.NET
Page 75 sur 94
Microsoft
Notez au passage dans cette fentre Proprits que la proprit Icon est celle qui va
nous permettre dassocier une icne au composant, celle-l mme qui apparatra dans
la zone de notification.
2. Configurez licne du composant de notification avec un fichier icne fourni avec le code de
latelier :
Printemps 2008
Coach VB.NET
Page 76 sur 94
Microsoft
Sur lcran de gestion des ressources, cliquez le menu Ajouter une ressource >
ajouter un fichier existant :
Printemps 2008
Coach VB.NET
Page 77 sur 94
Microsoft
Nous avons choisi titre dexemple une icne reprsentant une connexion LAN
. On
pourrait en effet imaginer que votre application ait besoin un moment ou un autre dtre
connecte Internet ou sur le rseau de lentreprise. Dans ce cas, il pourrait tre intressant
de dtecter par programmation ltat de connexion de la machine de lutilisateur et de modifier
licne affiche par le composant mainNotifyIcon en consquence, afin de donner
lutilisateur une indication sur la connectivit de lapplication en cours. Licne
correspondrait par exemple ltat dconnect.
Nous nallons charger quune seule icne dans le projet ce stade du tutorial.
Le fichier est
automatiquement li au
projet.
Printemps 2008
Coach VB.NET
Page 78 sur 94
Microsoft
Un constructeur en VB est une mthode publique nomme New sans aucune valeur de
retour.
Code VB
Printemps 2008
Coach VB.NET
Page 79 sur 94
Microsoft
End Sub
End Class
Validez par Entre. Visual Studio rajoute la suite de la procdure pour vous !
Code VB
End Sub
Printemps 2008
Coach VB.NET
Page 80 sur 94
Microsoft
End Sub
End Class
Notez entre autres lappel la mthode InitializeComponent que vous trouverez dans
le fichier Main.Designer.vb. Il sagit de la procdure qui initialise tous les lments de
votre interface et qui est donc appele systmatiquement la construction du formulaire.
Dhabitude, on ne sen proccupe gure parce que Visual Studio crait le formulaire
pour nous. Mais comme nous sommes en train de dfinir un constructeur spcifique
pour le formulaire Main, cest nous maintenant dappeler cette mthode !
Code VB
Printemps 2008
Coach VB.NET
Page 81 sur 94
Microsoft
End Sub
End Class
Noubliez pas dutiliser fond laide de lIntelliSense pour viter les erreurs. Par
exemple, chaque fois que vous tapez un point, lIntelliSense se manifeste et vous
guide dans le choix des lments possibles compte tenu du contexte.
Vous devez voir votre icne en tant
que ressource.
Printemps 2008
Coach VB.NET
Page 82 sur 94
Microsoft
Arrtez le curseur de la souris sur licne pour valider le texte daide (tooltip).
Faites un glisser dplacer de la Bote outils > rubrique Menus et barre doutils >
du contrle ContextMenuStrip nimporte o sur la surface du formulaire :
Page 83 sur 94
Microsoft
Zone de dessin du
menu
Printemps 2008
Coach VB.NET
Page 84 sur 94
Microsoft
Dans
les
proprits
du
contrle,
changez
son
nom
par
mainNotifyIconContextMenuStrip en changeant la valeur de la proprit (Name).
Sur la zone de dessin du menu contextuel, cliquez sur Tapez ici pour saisir une
premire option de menu :
Printemps 2008
Coach VB.NET
Page 85 sur 94
Microsoft
Printemps 2008
Coach VB.NET
Page 86 sur 94
Microsoft
Printemps 2008
Page 87 sur 94
Microsoft
Faites un clic droit sur licne pour valider le dclenchement du menu contextuel :
Ltape suivante consiste coder maintenant les actions associes au clic de lutilisateur
sur les diffrentes options du menu contextuel. Dans cet atelier, nous allons nous
concentrer sur loption Quitter lapplication qui permet lutilisateur darrter
lexcution du programme.
Le procd de codage dune option de menu contextuel est rigoureusement le mme
que celui que nous avons suivi prcdemment pour coder loption Quitter du menu
principal du formulaire Main.
Double cliquez sur loption du menu contextuel Quitter lapplication pour gnrer la
procdure de rponse lvnement Click sur loption de menu :
Printemps 2008
Coach VB.NET
Page 88 sur 94
Microsoft
Etape 1 : Slectionnez
dabord le contrle pour le
faire apparatre sur le
formulaire.
Visual Studio bascule dans la fentre de code et gnre la suite des membres de la
classe
Main,
une
nouvelle
mthode
nomme
QuitterLapplicationToolStripMenuItem_Click.
Printemps 2008
Coach VB.NET
Page 89 sur 94
Microsoft
Code VB
Printemps 2008
Coach VB.NET
Page 90 sur 94
Microsoft
Reprenez le gestionnaire dvnement QuitterToolStripMenuItem _Click et ajoutezlui le second vnement spar par une virgule.
Une bonne pratique serait de renommer le gestionnaire dvnement avec un nom plus
gnrique qui reflterait son action.
Printemps 2008
Renommez par
FormClose.
exemple
la
mthode
QuitterToolStripMenuItem_Click
Coach VB.NET
en
Page 91 sur 94
Microsoft
Faites un clic droit sur licne pour faire apparatre le menu contextuel.
Printemps 2008
Coach VB.NET
Page 92 sur 94
Microsoft
Types dvnement
Gestionnaire dvnement
Types dvnement
Gestionnaires dvnement
Bravo ! Vous avez dvelopp votre premire application Visual Basic de type Windows. Dans les
prochains ateliers, nous allons poursuivre sa construction tout en explorant tous les principes de
programmation et caractristiques lis au langage Visual Basic.
Printemps 2008
Coach VB.NET
Page 93 sur 94
Microsoft
Pour Application.Run() :
http://msdn.microsoft.com/frfr/library/system.windows.forms.application.run(VS.80).aspx
Pour Application.Exit() :
http://msdn.microsoft.com/frfr/library/system.windows.forms.application.exit(VS.80).aspx
Mais attention, si deux procds peuvent paratre identiques du point de vue de lutilisateur, ils
peuvent suivre un cheminement trs diffrent dun point de vue cycle dexcution dans lapplication.
Par exemple, lutilisation de la mthode Close dun formulaire droule le cycle de fermeture complet
du dit formulaire cest--dire dclenche une succession dvnements caractristiques de la fermeture
dune fentre Windows Form. En revanche, lutilisation de la mthode Exit de lobjet Application a
pour effet de fermer tous les formulaires ouverts dans lapplication mais sans dclencher le cycle
complet de fermeture de chacun deux.
Tout cela pour dire que le Framework recle de nombreuses possibilits adaptes chaque scnario.
Aidez-vous de MSDN pour bien comprendre le domaine dapplication de chacun des lments que
vous mettez en uvre.
Printemps 2008
Coach VB.NET
Page 94 sur 94