Vous êtes sur la page 1sur 94

Page 1 sur 94

Crer sa premire application


VB.NET
http://msdn.microsoft.com/vbasic

Microsoft Crer sa premire application VB.NET Atelier 2

Printemps 2008 Coach VB.NET Page 2 sur 94



SOMMAIRE

1 INTRODUCTION ................................................................................................................................................... 3
1.1 CONTEXTE FONCTIONNEL ............................................................................................................................. 3
1.2 CONTEXTE TECHNIQUE ................................................................................................................................. 6
2 CRER LE PROJET ET LA FENTRE PRINCIPALE ...................................................................................................... 7
2.1 CRER LA SOLUTION DE PROJET ...................................................................................................................... 8
2.2 CONTRLER LE DMARRAGE DE LAPPLICATION ............................................................................................... 12
2.3 COMPRENDRE LE FONCTIONNEMENT DUN FORMULAIRE .................................................................................. 26
2.4 CONTRLER LAFFICHAGE ET LARRT DE LAPPLICATION ................................................................................... 40
3 TRAVAILLER BASE DE CONTRLES (COMPOSANTS) ........................................................................................ 42
3.1 CONFIGURER LES CARACTRISTIQUES DE LA FENTRE PRINCIPALE ........................................................................ 44
3.2 CONSTRUIRE LE MENU DE LAPPLICATION ....................................................................................................... 48
3.3 CODER LA FERMETURE DE LAPPLICATION....................................................................................................... 57
3.4 AFFICHER LAPPLICATION DANS LA ZONE DE NOTIFICATION ................................................................................ 73
4 POUR ALLER PLUS LOIN ................................................................................................................................... 94


Microsoft Crer sa premire application VB.NET Atelier 2

Printemps 2008 Coach VB.NET Page 3 sur 94



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 :



Ce logo marque une fonctionnalit de VB ou de Visual Studio qui permet de dvelopper
vite (et juste ).



Ce logo met en vidence une caractristique de la programmation oriente objet.

Contexte fonctionnel du deuxime atelier
Ce deuxime atelier dcrit la cration dune premire application Visual Basic de type Windows.
Lobjectif est de construire une application prsentant une fentre avec une grille de travail sur des
donnes. Nous lappellerons Editeur du coach VB.

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 :

Microsoft Crer sa premire application VB.NET Atelier 2

Printemps 2008 Coach VB.NET Page 4 sur 94




Ca va encore tre simple
Pour linstant dans cet atelier, nous nous attacherons construire la charpente de lapplication
sans nous proccuper de laffichage des donnes.
Au lancement de lapplication, nous allons afficher un cours instant un cran de dmarrage donnant le
titre, la version et le propritaire de lapplication :



Microsoft Crer sa premire application VB.NET Atelier 2

Printemps 2008 Coach VB.NET Page 5 sur 94


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.




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.

727 pixels
Barre de menu principal de lapplication contenant les
options de menu standards Fichier, Edition, Outils et
Aide.
Titre de la fentre
4
2
7

p
i
x
e
l
s

Microsoft Crer sa premire application VB.NET Atelier 2

Printemps 2008 Coach VB.NET Page 6 sur 94



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.

A la fin de cet atelier, vous saurez comment :

Crer une application simple base de formulaire,
Dvelopper des gestionnaires dvnement associs diffrents types dvnement,
Concevoir un formulaire en utilisant des contrles et des composants Windows Form,
Utiliser la bote doutils et la fentre de proprits de Visual Studio,
Icne de notification de lexcution
de lapplication.
Menu contextuel qui saffiche sur
un clic droit de licne de
notification.
Microsoft Crer sa premire application VB.NET Atelier 2

Printemps 2008 Coach VB.NET Page 7 sur 94


Programmer la zone de notification de Windows,
Utiliser des classes partielles.

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.
CREER LE PROJET ET LA FENETRE PRINCIPALE

Dans cet exercice, vous allez apprendre :

- Crer un projet de type Application Windows Forms,
- Crer un cran de dmarrage,
- Utiliser le Concepteur de projets de Visual Studio pour configurer le dmarrage et larrt dune
application,
- Visualiser les diffrents fichiers qui constituent un formulaire Windows Form,
- Utiliser les classes partielles.


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 :

Microsoft Crer sa premire application VB.NET Atelier 2

Printemps 2008 Coach VB.NET Page 8 sur 94





CREER LA SOLUTION DE PROJET

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...



Microsoft Crer sa premire application VB.NET Atelier 2

Printemps 2008 Coach VB.NET Page 9 sur 94


Dans la fentre Nouveau projet, slectionnez le modle de projet Application
Windows Forms et indiquez Coach.Editeur comme nom de projet.




Ce modle de projet fait rfrence aux Windows Forms. Savez-vous en quoi consiste
cette technologie ?
Dans Windows Forms, il y a :
- le mot Windows qui fait rfrence aux applications de bureau riches et
interactives que lon dploie sur un poste client,
- et le mot Forms qui fait rfrence la notion de formulaire.

Quest-ce quon entend par formulaire ?
Un formulaire est une fentre Windows dans laquelle lutilisateur peut consulter et saisir
des informations de manire simple et interactive.

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.
Modle du projet
Nom du projet
Microsoft Crer sa premire application VB.NET Atelier 2

Printemps 2008 Coach VB.NET Page 10 sur 94


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.


Pour avoir une vue densemble des Windows Forms :
http://msdn.microsoft.com/fr-fr/library/8bxxy49h.aspx
A ne pas confondre avec les Web Forms qui permettent de dvelopper un autre type de
formulaire pour les applications web. Pour comparer les deux technologies, rendez-
vous ladresse suivante :
http://msdn.microsoft.com/fr-fr/library/5t6z562c.aspx

Validez par OK.


Que contient ce modle de projet ?
Un projet gnr sur la base du modle Application Windows Forms comprend un
formulaire vide nomm Form1 par dfaut. Vous pouvez voir dans la surface de travail sa
reprsentation visuelle dans longlet Form1.vb [Design] gnr par le Concepteur
Windows Forms de Visual Studio.

Microsoft Crer sa premire application VB.NET Atelier 2

Printemps 2008 Coach VB.NET Page 11 sur 94





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.



Dans la bote de dialogue Enregistrer un projet, indiquez votre rpertoire de travail.
Sauvegarde de la solution



Fentre du Concepteur
Windows Forms qui va nous
servir dessiner le formulaire
Form1.
Microsoft Crer sa premire application VB.NET Atelier 2

Printemps 2008 Coach VB.NET Page 12 sur 94




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.

Cochez la case Crer le rpertoire pour la solution et saisissez un nom pour la
solution par exemple : Atelier 2.



Cliquez sur Enregistrer.

CONTRLER LE DMARRAGE DE LAPPLICATION

Dans ce type de projet, o est lindispensable procdure Main qui constitue le point
dentre du programme ?
Cest vrai que nous avons dit lexercice 2 de latelier 1 de ce tutorial que le Framework
.NET appelle la procdure Main du programme lorsquil a charg lapplication. Elle
constitue le point de dpart de lexcution.
Dans le cas dune application base sur des formulaires, en gnral il est surtout
intressant de dmarrer lexcution directement par laffichage dun formulaire du projet.
En thorie, il faudrait donc crire une procdure Main qui cr une instance du
formulaire puis laffiche.
Pour simplifier, le compilateur Visual Basic gnre automatiquement cette procdure
pour vous si bien que vous navez pas vous soucier de lcrire. En revanche, cest
vous dindiquer au compilateur quel est le formulaire du projet sur lequel vous souhaiter
Chemin par dfaut dfini dans les options de Visual
Studio.
Microsoft Crer sa premire application VB.NET Atelier 2

Printemps 2008 Coach VB.NET Page 13 sur 94



Droulement de lexercice :

1. Configurez le formulaire de dmarrage de lapplication :
Dans lExplorateur de Solutions, double cliquez My Project pour faire apparatre le
Concepteur de projets de Visual Studio.


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.


Vous pouvez galement afficher le Concepteur de projets en faisant un clic droit la
racine du projet dans lExplorateur de solutions > Proprits.


Pour en savoir plus sur le Concepteur de projets de Visual Studio :
http://msdn.microsoft.com/fr-fr/library/bb1aa8f1.aspx

Dans longlet Application, vrifiez que le formulaire de dmarrage est correctement
configur sur Form1.

dmarrer.
Microsoft Crer sa premire application VB.NET Atelier 2

Printemps 2008 Coach VB.NET Page 14 sur 94





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.

Systme de navigation avec onglets du
Concepteur de projets
Microsoft Crer sa premire application VB.NET Atelier 2

Printemps 2008 Coach VB.NET Page 15 sur 94




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



Pour en savoir plus sur la mthode Run de la classe Application :
http://msdn.microsoft.com/fr-fr/library/ms157902(VS.85).aspx

La case doit tre
dcoche pour que le
contenu de la liste
change.
Microsoft Crer sa premire application VB.NET Atelier 2

Printemps 2008 Coach VB.NET Page 16 sur 94


2. Renommez la fentre principale du projet pour quelle soit clairement reconnaissable comme
tant le point dentre de lapplication :
Dans lExplorateur de Solutions, faites un clic-droit sur le fichier Form1.vb, et
slectionnez le menu Renommer.



Changez le nom de Form1.vb en Main.vb.
Appuyez sur la touche Entre.
3. Testez le comportement de lapplication en mode dexcution :
Lancez lapplication en utilisant le menu Dbogage, ou la flche dans la barre
doutils standard ou via le raccourci F5.


Visual Studio commence par gnrer lapplication. Vous pouvez observer en bas
gauche de lcran les messages relatifs au processus de gnration :



Microsoft Crer sa premire application VB.NET Atelier 2

Printemps 2008 Coach VB.NET Page 17 sur 94



Puis le formulaire Main saffiche :



Arrter lexcution de lapplication en cliquant licne du formulaire.


Une alternative la configuration de dmarrage que nous venons de mettre en place
consiste afficher un petit cran de dmarrage lespace de quelques instants avant
dafficher le formulaire principal de lapplication. Cest dailleurs comme cela que
dmarre Visual Studio.
Le temps daffichage de cet cran intermdiaire peut servir couvrir le chargement ou
linitialisation de donnes, ouvrir des fichiers etc

4. Ajoutez un cran de dmarrage au projet Coach.Editeur :
Dans lExplorateur de Solutions, faites un clic-droit sur la racine du projet
Coach.Editeur > Ajouter > Nouvel lment.

Microsoft Crer sa premire application VB.NET Atelier 2

Printemps 2008 Coach VB.NET Page 18 sur 94




Dans la fentre Ajouter un nouvel lment, slectionnez le modle Ecran de
dmarrage.
Nommez le formulaire SplashScreen.vb.



Modle pour ajouter un
nouveau formulaire
Modle dcran de
dmarrage
Microsoft Crer sa premire application VB.NET Atelier 2

Printemps 2008 Coach VB.NET Page 19 sur 94


Validez en cliquant Ajouter.




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 :
- La premire, est de vous reposer sur Visual Studio qui, ne loublions pas,

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.

Microsoft Crer sa premire application VB.NET Atelier 2

Printemps 2008 Coach VB.NET Page 20 sur 94


sattache nous simplifier la vie le plus possible. Puisquil sait afficher un
formulaire au dmarrage via un simple paramtrage dans le Concepteur de
projets, pourquoi ne serait-il pas capable de nous afficher aussi un cran
intermdiaire lespace de quelques secondes ?
Cette premire approche est dite dclarative dans la mesure o nous navons
qu dclarer (ou paramtrer) les objets et le comportement attendu Visual
Studio pour quil sache ce quil faut faire. Cest cette option que nous allons
mettre en uvre.
- 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 .

5. Associez le formulaire SplashScreen en tant qucran de dmarrage du projet
Coach.Editeur laide du Concepteur de projets de Visual Studio :
Dans lExplorateur de Solutions, double cliquez sur My Project pour afficher
nouveau le Concepteur de projets.


Vous pouvez aussi cliquer sur longlet Coach.Editeur sur la surface de travail si vous navez
pas ferm le Concepteur de projets auparavant :



Dans longlet Application, slectionnez le formulaire SplashScreen dans la liste de
la proprit Ecran de dmarrage.

Microsoft Crer sa premire application VB.NET Atelier 2

Printemps 2008 Coach VB.NET Page 21 sur 94




Enregistrez vos changements en cliquant sur licne dans la barre doutils
standard de Visual Studio.






6. Testez le comportement de lapplication en mode dexcution :
Relancez lapplication (F5).


Visual Studio affiche pendant quelques secondes notre formulaire de dmarrage. Cest
cool !
Labsence dastrisque * signifie que les
modifications sont sauvegardes.
Microsoft Crer sa premire application VB.NET Atelier 2

Printemps 2008 Coach VB.NET Page 22 sur 94





Mais vous avez pu constater que si le paramtrage de lcran de dmarrage ne nous a
demand que quelques minutes, il ne nous est pas possible en revanche de rgler par
exemple la dure daffichage de lcran. La solution est de la programmer en vous
aidant du Framework .NET. Nous aurons bien sr loccasion dutiliser lapproche par
code tout au long de ce tutorial.


Pour apprendre contrler le temps daffichage de lcran de dmarrage, rendez-vous
sur :
http://msdn.microsoft.com/fr-fr/library/ms234874(en-us,VS.85).aspx


Enfin, au bout de quelques secondes, cest au tour du formulaire principal de notre projet
de safficher :

Microsoft Crer sa premire application VB.NET Atelier 2

Printemps 2008 Coach VB.NET Page 23 sur 94




Arrter lexcution de lapplication en cliquant licne du formulaire Form1.


Juste une petite question : est-ce que vous tes certain que ctait bien votre
formulaire SplashScreen qui sest affich au dmarrage ?



Microsoft Crer sa premire application VB.NET Atelier 2

Printemps 2008 Coach VB.NET Page 24 sur 94


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.


O le code trouve-t-il les informations du programme ?
Celles-ci constituent des proprits du projet configurables directement dans le
Concepteur de projets.

Dans lExplorateur de Solutions, double cliquez sur My Project pour afficher
nouveau le Concepteur de projets ou basculez sur longlet Coach.Editeur sil est
encore ouvert.
Dans longlet Application, cliquez sur le bouton Informations de lassembly

Microsoft Crer sa premire application VB.NET Atelier 2

Printemps 2008 Coach VB.NET Page 25 sur 94







Les informations de titre, de version et de copyright rcupres par le formulaire de
dmarrage sont remplies ici par dfaut en sinspirant du nom de votre projet.

Remplacez par exemple le titre de lapplication par Editeur du Coach VB.
Rajoutez le nom de votre socit dans le Copyright.

Microsoft Crer sa premire application VB.NET Atelier 2

Printemps 2008 Coach VB.NET Page 26 sur 94




Validez par OK.
Enregistrez vos modifications dans le Concepteur de projets.
Validez le nouvel cran de dmarrage en relanant lexcution de lapplication (F5) :




COMPRENDRE LE FONCTIONNEMENT DUN FORMULAIRE
Microsoft Crer sa premire application VB.NET Atelier 2

Printemps 2008 Coach VB.NET Page 27 sur 94


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 :

1. Observez la structure du formulaire de lcran de dmarrage SplashScreen :
Dans lExplorateur de solutions, double cliquez sur le fichier SplashScreen.vb.




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.

Pour afficher le fichier de code contenant la dfinition design du formulaire, cliquez
sur licne Afficher tous les fichiers dans la barre doutils de lExplorateur de
solutions.

Microsoft Crer sa premire application VB.NET Atelier 2

Printemps 2008 Coach VB.NET Page 28 sur 94







Pour viter de se disperser, lExplorateur de solutions de Visual Studio ne vous affiche
pas par dfaut lintgralit de tous les fichiers dans la structure du projet. Par exemple,
les dossiers bin et obj ne sont pas ncessairement trs utiles au moment du
dveloppement donc sont cachs par dfaut. Il en est de mme pour les fichiers de code
des formulaires gnrs automatiquement par le Concepteur de formulaire.

Etendez le nud du fichier SplashScreen.vb et double cliquez sur le fichier
SplashScreen.Designer.vb.




Dans ce fichier de code, vous trouvez la dfinition de la classe du formulaire nomme
SplashScreen et toutes les informations ncessaires pour construire le panneau
contenant limage, les zones daffichage du titre de lapplication, du numro de version et
Dfinition de la classe
Microsoft Crer sa premire application VB.NET Atelier 2

Printemps 2008 Coach VB.NET Page 29 sur 94


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
Exemple de la dfinition des proprits de la zone daffichage du numro de version
Microsoft Crer sa premire application VB.NET Atelier 2

Printemps 2008 Coach VB.NET Page 30 sur 94


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 :
- Faites un clic droit sur le fichier SplashScreen.vb dans lExplorateur de
solutions > Afficher le code.



- Faites un clic droit nimporte o sur le Concepteur de formulaire dans longlet
SplashScreen.vb [Design], puis > Afficher le code.


Positionnez le curseur
de la souris en dehors
du formulaire pour viter
de vous retrouver dans
le contexte dun contrle
daffichage
Microsoft Crer sa premire application VB.NET Atelier 2

Printemps 2008 Coach VB.NET Page 31 sur 94



- Slectionnez le fichier SplashScreen.vb dans lExplorateur de solutions puis
cliquez licne (Afficher le code) de la barre doutils. Inversement il suffit de
cliquer sur licne (Afficher le concepteur de vues) pour afficher la
reprsentation graphique du formulaire.


- 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.


Microsoft Crer sa premire application VB.NET Atelier 2

Printemps 2008 Coach VB.NET Page 32 sur 94




Comment fait le compilateur pour sy retrouver dans la dfinition de la classe puisquelle
est clate dans plusieurs fichiers distincts ?
Il sagit l dune proprit du langage Visual Basic proprement dit, qui autorise la
dfinition dune classe dcoupe en plusieurs fichiers physiques. Pour indiquer au
compilateur quil va devoir recoller les morceaux et fusionner lensemble des
dclarations pour nen faire quune, on ajoute la directive de classe le mot cl Partial :











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
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.
Microsoft Crer sa premire application VB.NET Atelier 2

Printemps 2008 Coach VB.NET Page 33 sur 94



2. Observez le code du comportement du formulaire SplashScreen : il consiste rcuprer les
informations de lassembly pour les afficher dans les zones de lcran de dmarrage
correspondant :
Affichez le code du fichier fichier SplashScreen.vb.
Retrouvez la procdure SplashScreen_Load qui est excute au moment de
laffichage de lcran de dmarrage.
Recherchez par exemple les lignes de code qui rcupre le titre de lapplication :




Que signifie le mot My crit en bleu ?
Comme le Framework .NET contient une multitude de classes et quil nest parfois par
simple de sy retrouver, Visual Basic se propose de vous fournir des raccourcis vers
quelques fonctionnalits les plus couramment utilises du Framework. Comment ?
Grce un espace de nom qui lui est propre appel My, qui contient un certain
nombre de classes organises hirarchiquement vous donnant un accs rapide aux
informations concernant lapplication et son environnement dexcution. Vous y trouvez
par exemple les classes My.Application, My.Computer, My.User ou encore
My.Resources qui donnent un accs aux ressources 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.

Microsoft Crer sa premire application VB.NET Atelier 2

Printemps 2008 Coach VB.NET Page 34 sur 94



Ainsi pour connatre le titre de votre application, il suffit de rcuprer la valeur de la
proprit Title de lobjet My.Application.Info dans lespace de noms My. Si celui-ci
nest pas renseign, le code recherche le nom du fichier de sortie de lapplication
(auquel on soustrait lextension) via la poprit AssemblyName de lobjet
My.Application.Info.


Pour tout savoir sur le dveloppement avec My :
http://msdn.microsoft.com/fr-fr/library/5btzf5yk.aspx
Pour en savoir plus spcifiquement sur lobjet My.Application.Info :
http://msdn.microsoft.com/fr-fr/library/0f1ec0yf.aspx

Fermez le fichier SplashScreen.vb en slectionnant le menu Fichier > Fermer ou
en cliquant la croix droite de la fentre ouverte sur la surface de travail.



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.

3. Pour terminer, personnalisez limage de lcran de dmarrage :
Affichez le Concepteur de formulaire en double cliquant sur le fichier
SplashScreen.vb dans lExplorateur de solutions.
Cliquez sur limage gauche de lcran de dmarrage pour la slectionner.
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.
Microsoft Crer sa premire application VB.NET Atelier 2

Printemps 2008 Coach VB.NET Page 35 sur 94






Dans le cas dun formulaire complexe contenant de nombreux lments dinterface,
cette liste droulante est trs utile pour slectionner directement le bon lment sans
passer par le Concepteur de formulaire. Dune manire gnrale, cest une bonne
pratique que de vrifier le nom du contrle daffichage dont vous modifiez les proprits.


Notez que la fentre Proprits est dote dune barre doutils dont les boutons sont les
suivants :
- Le bouton affiche les proprits en les triant par catgorie ;
- Le bouton affiche les proprits en les triant par nom ;
- Le bouton affiche les proprits de lobjet slectionn ;
- 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) ;
Liste droulante
Elargissez la fentre pour une
meilleure visibilit si besoin en
tirant le bord gauche avec la
souris.
Microsoft Crer sa premire application VB.NET Atelier 2

Printemps 2008 Coach VB.NET Page 36 sur 94


- 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 la ligne de la proprit BackgroundImage.



Slectionnez le bouton droite de la zone de saisie de la valeur de la proprit.
Microsoft Crer sa premire application VB.NET Atelier 2

Printemps 2008 Coach VB.NET Page 37 sur 94





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.

Cliquez le bouton Importer.
Retrouvez le fichier Melle coach VB.gif reprsentant Melle coach VB dans le dossier
..\Atelier 2\Fichiers utiles fourni avec latelier.

Microsoft Crer sa premire application VB.NET Atelier 2

Printemps 2008 Coach VB.NET Page 38 sur 94




Cliquez Ouvrir.



Cliquez OK.
Microsoft Crer sa premire application VB.NET Atelier 2

Printemps 2008 Coach VB.NET Page 39 sur 94


Configurez la proprit BackgroundImageLayout la valeur None pour supprimer
lajustement (stretch) de limage sur lentire surface du contrle daffichage.



Enregistrez vos modifications. Vous devez obtenir :



4. Excutez lapplication pour tester lcran de dmarrage :
Lancez lapplication (touche F5).
Lcran de dmarrage suivant saffiche pendant quelques secondes avant le
formulaire principal de lapplication :

Microsoft Crer sa premire application VB.NET Atelier 2

Printemps 2008 Coach VB.NET Page 40 sur 94




CONTROLER L AFFICHAGE ET L ARRET DE LAPPLICATI ON

Maintenant que vous savez contrler le dmarrage de lapplication, la question est :
quand lapplication sarrte-t-elle ?
Comme prcdemment, deux possibilits soffrent vous : soit vous laissez faire Visual
Studio en lui donnant un minimum dinformation pour quil gre les choses votre
convenance ; soit vous contrlez par code larrt de lapplication.
Dans cet exercice, nous allons voir comment contrler de manire dclarative larrt du
programme.

Droulement de lexercice :

1. Configurez Visual Studio pour que lapplication sarrte lorsque lutilisateur dcide de fermer le
formulaire principal de lapplication :
Editez le Concepteur de projets en cliquant sur My Project dans lExplorateur de
solutions.
Dans longlet Application, vrifiez que loption A la fermeture du formulaire de
dmarrage est slectionne dans la liste de la proprit Mode darrt.

Microsoft Crer sa premire application VB.NET Atelier 2

Printemps 2008 Coach VB.NET Page 41 sur 94





Voil pourquoi lapplication se fermait prcdemment lorsque vous cliquiez licne
en haut droite du formulaire Main.

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 :
- en cliquant loption Fichier > Quitter du menu principal de lapplication
- ou en utilisant le menu contextuel associ licne de notification que nous
allons programmer dans la barre de notification dtat de Windows.
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.


Microsoft Crer sa premire application VB.NET Atelier 2

Printemps 2008 Coach VB.NET Page 42 sur 94


TRAVAILLER A BASE DE CONTROLES (COMPOSANTS)

De la mme manire que le Framework .NET fournit toute une palette de classes pour
nous aider programmer plus vite le code de lapplication, il nous fournit une bote
outils de contrles daffichage pour nous aider dessiner plus vite linterface dun
formulaire.


Quest ce quun contrle Windows Forms ?
Ce nest ni plus ni moins quune classe du Framework .NET ayant une reprsentation
graphique, que lon peut donc ajouter au design dun formulaire.
Par exemple : un contrle de type TextBox est un objet bas sur la classe
System.Windows.Forms.TextBox du Framework .NET reprsentant une zone de texte
sur lcran.

Peut-tre avez-vous dj entendu parler galement de composant Windows Forms ?
Ce sont des objets similaires aux contrles Windows Forms ceci prs quils nont pas
dquivalence graphique, mais sont nanmoins trs utiles au moment du design dun
formulaire.
Par exemple : un composant de type BindingSource soccupe de grer la source de
donnes lie 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, rendez-
vous 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/fr-
fr/library/6hws6h2t.aspx
Microsoft Crer sa premire application VB.NET Atelier 2

Printemps 2008 Coach VB.NET Page 43 sur 94



Dans cet exercice, vous allez apprendre :

- Utiliser les contrles Windows Form MenuStrip et NotifyIcon,
- Utiliser le composant Windows Form ContextMenuStrip,
- Dvelopper un gestionnaire dvnement,
- Dfinir et utiliser une ressource lie au projet.


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 :
- Une barre de menu standard qui saffiche sous le titre de la fentre :



Microsoft Crer sa premire application VB.NET Atelier 2

Printemps 2008 Coach VB.NET Page 44 sur 94


- 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) :




CONFIGURER LES CARACTERISTIQUES DE LA FENETRE PRINCI PALE

Le formulaire principal que nous avons appel Main dans notre application
Coach.Editeur est en ralit lobjet conteneur global dans lequel nous allons positionner
tous les contrles daffichage qui vont servir dessiner lcran.
Au mme titre quun contrle, un formulaire est donc un objet possdant son propre
ensemble de proprits, de mthodes et dvnements.
Dans cet exercice, nous allons modifier deux proprits du formulaire que sont la taille et
le titre de la fentre.

Droulement de lexercice :

1. Affichez la fentre de proprits du formulaire :
Affichez le fichier Main.vb dans le Concepteur de formulaire.
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.

Microsoft Crer sa premire application VB.NET Atelier 2

Printemps 2008 Coach VB.NET Page 45 sur 94




1. Modifiez le texte dans la barre de titre du formulaire :
Dans la liste des proprits de lobjet Main, slectionnez la proprit Text.
Tapez par exemple la valeur suivante : Editeur de coach VB.


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

Microsoft Crer sa premire application VB.NET Atelier 2

Printemps 2008 Coach VB.NET Page 46 sur 94



Vous pouvez diter le fichier Main.Designer.vb partir de lExplorateur de solutions
pour observer la nouvelle ligne de code gnre par le Concepteur de formulaire suite
votre modification.



2. Modifiez la taille du formulaire :
Toujours dans la fentre Proprits de lobjet Main, slectionnez la proprit Size
(dimension).
Ouvrez-la en cliquant sur , et indiquez la valeur 727 pour Width (largeur) et 427
pour Height (hauteur).



Le Concepteur de formulaire rajuste automatiquement les dimensions du formulaire
en consquence :

Valeurs en
pixels
Microsoft Crer sa premire application VB.NET Atelier 2

Printemps 2008 Coach VB.NET Page 47 sur 94




Enregistrez vos changements.

3. Excutez lapplication pour tester le formulaire :
Lancez lapplication (touche F5).
Le formulaire saffiche aprs lcran de dmarrage :

Microsoft Crer sa premire application VB.NET Atelier 2

Printemps 2008 Coach VB.NET Page 48 sur 94






CONSTRUIRE LE MENU DE LAPPLICATION
Dans cet exercice nous allons ajouter notre premier contrle au formulaire.


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.

4
2
7

p
i
x
e
l
s

Le nouveau titre saffiche dans la barre de titre
de la fentre Main.
727 pixels
Microsoft Crer sa premire application VB.NET Atelier 2

Printemps 2008 Coach VB.NET Page 49 sur 94




Droulement de lexercice :

1. Dessinez une barre de menu sur le formulaire Main laide dun contrle MenuStrip :
Commencez par afficher le formulaire Main en mode Design.


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.

Tous les contrles et
composants sont classs
par catgorie.
Microsoft Crer sa premire application VB.NET Atelier 2

Printemps 2008 Coach VB.NET Page 50 sur 94






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 :



La Bote outils est vide si le fichier
sur la surface de travail est un
fichier de code.
Microsoft Crer sa premire application VB.NET Atelier 2

Printemps 2008 Coach VB.NET Page 51 sur 94


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.



Le bouton Parcourir permet de slectionner directement un assembly (.dll) qui
contiendrait les contrles voulus, partir dun emplacement sur disque.


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.

Microsoft Crer sa premire application VB.NET Atelier 2

Printemps 2008 Coach VB.NET Page 52 sur 94




Ouvrez la Bote outils de Visual Studio et fixez-la en cliquant sur licne (sauf si
elle est dj fige et que licne affiche au contraire la punaise verticale ).
Faites un glisser dplacer de la catgorie Menus et barres doutils du contrle
MenuStrip nimporte o sur la surface du formulaire Main.



Microsoft Crer sa premire application VB.NET Atelier 2

Printemps 2008 Coach VB.NET Page 53 sur 94



Deux nouveaux lments apparaissent sur le formulaire :
- Une barre de menu vide sous la barre de titre de la fentre,
- Et un composant nomm menuStrip1 dans une nouvelle zone au bas de la
surface de travail.





Si vous cliquez maintenant nimporte o sur le formulaire, la barre de menu sous la barre
de titre disparait.
Barre de menu (visuelle)
Contrle de menu
Zone de dpt des contrles
Microsoft Crer sa premire application VB.NET Atelier 2

Printemps 2008 Coach VB.NET Page 54 sur 94




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.

Slectionnez le contrle menuStrip1 dans la zone de dpt. La ligne de menu doit
rapparatre en dessous de la barre de titre du formulaire.
Faites un clic-droit sur le contrle menuStrip1 > Proprits ou appuyer sur F4.
Dans la fentre de proprits du contrle, retrouvez le nom du contrle donn par la
proprit (Name). Cette proprit apparat parmi les premires si vous tes en
classement alphabtique (bouton de la barre doutils des proprits) :



?
Licne classe les
proprits par catgorie selon
leur fonction.
Microsoft Crer sa premire application VB.NET Atelier 2

Printemps 2008 Coach VB.NET Page 55 sur 94



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.

Modifiez le nom du contrle comme suit :




De quoi avez-vous besoin dans la barre de menu ?
Lapplication que nous dveloppons va servir assez classiquement manipuler des
donnes. Nous avons donc besoin dun menu Fichier pour manipuler des fichiers de
donnes, dun menu Edition pour les actions standards de copier/coller, dun menu
dAide etc Ce ne sont l ni plus ni moins que les menus habituels que vous rencontrez
dans toute application Windows. Cest pourquoi le Concepteur de formulaire se propose
de vous donner un petit coup de pouce pour dessiner la barre de menu avec les
lments standards dune application professionnelle.

2. Ajoutez les lments de menu standard de Windows sur la barre de menu mainMenuStrip :
Dans le Concepteur de formulaire, slectionnez le contrle mainMenuStrip pour faire
apparatre la barre de menu sous le titre de la fentre.
Faites un clic droit sur la barre de menu > Insrer des lments standard.

Microsoft Crer sa premire application VB.NET Atelier 2

Printemps 2008 Coach VB.NET Page 56 sur 94






Vous obtenez :


Cest carrment magique non ?
Par contre, la magie sarrte au design car bien videmment Visual Studio vous laisse
crire le code qui doit sexcuter sur le clic de chacune des options de menu. Mais cest
toujours a de pris et comme on dit, ce qui est fait nest plus faire


Pour ajouter de nouvelles options de menu, il suffit de cliquez sur la
suite des autres options de menu ou de sous-menu.
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.

Microsoft Crer sa premire application VB.NET Atelier 2

Printemps 2008 Coach VB.NET Page 57 sur 94




Avant de poursuivre, enregistrez toutes vos modifications.

CODER LA FERMETURE DE LAPPLICATION
Maintenant que la barre de menu de la fentre principale de lapplication est dessine, il faut coder les
instructions en rponse au clic de lutilisateur sur toutes les options de celle-ci.


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.



Coder la fermeture de lapplication revient donc coder la fermeture du formulaire Main.

Microsoft Crer sa premire application VB.NET Atelier 2

Printemps 2008 Coach VB.NET Page 58 sur 94



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 :

1. Gnrer une procdure associe au clic sur loption de menu Quitter :
Dans le Concepteur de formulaire, slectionner le menu Fichier de la barre de
menu du contrle mainMenuStrip puis double cliquez sur loption Quitter.



Microsoft Crer sa premire application VB.NET Atelier 2

Printemps 2008 Coach VB.NET Page 59 sur 94



Visual Studio vous bascule automatiquement dans le fichier de code Main.vb et cr
une procdure QuitterToolStripMenuItem_Click dans laquelle vous pouvez
programmer le code de fermeture du formulaire :







Cette procdure sappelle un gestionnaire dvnement (event handler en anglais) parce
quelle est excute automatiquement lorsquun vnement est dclench.

Pourquoi crire des gestionnaires dvnement ?
Le principe de la programmation des Windows Forms repose sur lapproche dite
vnementielle cest--dire que le code de lapplication sexcute dans un ordre non
dtermin lavance (par opposition un code qui sexcuterait en suivant une
squence prdfinie), en rponse une action de lutilisateur, telle que le clic de la
souris ou lutilisation des touches du clavier sur linterface de lapplication. En somme, si
lutilisateur ne clique jamais sur loption de menu Quitter, le code de cette procdure
destine fermer le formulaire ne sexcutera jamais.
Pour toute action de lutilisateur, le runtime dexcution dclenche un vnement
caractrisant cette action. Il soffre mme le luxe de dclencher dautres vnements
pas ncessairement en rapport avec une action de lutilisateur, en fait chaque fois quil
considre quil pourrait tre opportun de brancher un traitement pour lapplication. Par
exemple, au chargement du formulaire, se produit lvnement Load pour vous prvenir
que cest le moment idal pour initialiser certaines donnes ou contrles.

Le design du formulaire est accessible par longlet
correspondant rest ouvert
Microsoft Crer sa premire application VB.NET Atelier 2

Printemps 2008 Coach VB.NET Page 60 sur 94


Du coup, coder lapplication revient crire des gestionnaires dvnement pour
sabonner (comme on sabonne un flux RSS) aux vnements percutants pour la
logique de votre application et y brancher le code de traitement appropri.


Comment crire un gestionnaire dvnement en rponse un vnement ? Et oui !
Comment le systme sait-il que la procdure QuitterToolStripMenuItem_Click est
associe au clic sur le bouton Quitter du menu de lapplication ?


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.


Regardons ensemble ce qui a t gnr.
Contrairement ce quon pourrait croire, le nom QuitterToolStripMenuItem_Click de la
procdure nest pas en cause !
Pour comprendre comment a marche, il faut dabord retrouver la dclaration de loption de
menu Quitter dans le fichier Main.Designer.vb.

2. Retrouvez la dclaration de lobjet associ llment de menu Quitter :
Ouvrez le fichier Main.Designer.vb partir de lExplorateur de solutions.
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.

Microsoft Crer sa premire application VB.NET Atelier 2

Printemps 2008 Coach VB.NET Page 61 sur 94




Cliquez sur Suivant jusqu retrouver la ligne suivante :




Notez tout dabord le type de la variable System.Forms.ToolStripMenuItem. Il va nous
servir dans quelques instants.


La clause WithEvents est le premier lment ncessaire la construction dun
gestionnaire dvnement. En dfinissant la variable QuitterToolStripMenuItem laide
de WithEvents, cela signifie que vous autoriser lcriture de procdures en rponse aux
vnements de cette variable.

Microsoft Crer sa premire application VB.NET Atelier 2

Printemps 2008 Coach VB.NET Page 62 sur 94



Notez que la dfinition de QuitterToolStripMenuItem a t gnre automatiquement
lorsque vous avez dessin le menu sur le formulaire (via loption dinsertion des lments
standards). Elle correspond la dfinition de la variable associe loption de menu
dans votre programme.
Si vous cliquez plusieurs fois sur le bouton Suivant de la fentre de recherche, vous
constaterez quil y a galement dautres rfrences cette mme variable, par exemple
pour reproduire dans le code, lintitul (Text) de loption de menu, son positionnement
(Size) et son identifiant (Name).


Fermez le fichier Main.Designer.vb.


Le second lment pour crire un gestionnaire dvnement se trouve au niveau de la
dfinition de la procdure elle-mme. Il sagit du mot cl Handles qui fonctionne de paire
avec la clause WithEvents.

3. Observez la signature du gestionnaire dvnement gnr dans le fichier de code :
Revenez sur la dfinition de la procdure QuitterToolStripMenuItem_Click dans le
fichier Main.vb.

Code VB
Public Class Main

Private Sub QuitterToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles QuitterToolStripMenuItem.Click
Le caractre & devant la lettre Q dfinit un raccourci
clavier pour ce menu.
Microsoft Crer sa premire application VB.NET Atelier 2

Printemps 2008 Coach VB.NET Page 63 sur 94



End Sub
End Class



Le mot cl Handles est le second lment ncessaire la construction dun
gestionnaire dvnement. Pensez la littrature anglaise qui parle devent handler l
o nous parlons de gestionnaire dvnement. Il signifie que la procdure
QuitterToolStripMenuItem gre (handles) lvnement Click de la variable
QuitterToolStripMenuItem.

Attention une fois encore la terminologie utilise !
- Visual Studio nomme la procdure par dfaut avec le format :



<nom de la variable>_<nom de lvnement>

- Alors que le nom de lvnement est not :



<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.
soulign (underscore)
point
Microsoft Crer sa premire application VB.NET Atelier 2

Printemps 2008 Coach VB.NET Page 64 sur 94




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.

O trouver le nom de lvnement auquel sabonner ?
En haut de lditeur de code de Visual Studio, vous trouverez une barre contenant deux
listes droulantes. Elle donne une liste des vnements disponibles pour chaque objet
du formulaire.

Dans la liste de gauche Nom de la classe, slectionnez lobjet
QuitterToolStripMenuItem sur lequel porte lvnement attendu.






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.


Nom de la classe Nom de la mthode
Microsoft Crer sa premire application VB.NET Atelier 2

Printemps 2008 Coach VB.NET Page 65 sur 94



Dans la liste de droite Nom de la mthode, slectionnez lvnement auquel vous
voulez vous abonner pour lobjet slectionn.




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 :
- Le type de la mthode (procdure sans valeur de retour ou fonction avec une
valeur de retour),
- La dfinition de tous les paramtres de la mthode avec leur type de donnes,
- Et le type de donnes de la valeur de retour de la mthode sil y en a une (ce qui
nest pas le cas dans une procdure de rponse un vnement).

Pour les gestionnaires dvnement, cest trs facile, car la signature du gestionnaire
Microsoft Crer sa premire application VB.NET Atelier 2

Printemps 2008 Coach VB.NET Page 66 sur 94


dvnement est souvent la suivante :

Code VB
Private Sub NomDuGestionnaire(ByVal sender As System.Object, _
ByVal e As System.EventArgs) _
Handles NomDeLEvenement

End Sub


o :
- Sender de type System.Object, est llment lorigine du dclenchement de
lvnement (dans notre cas, ce serait donc lobjet
QuitterToolStripMenutItem),
- Et o e sert transmettre toutes informations utiles au gestionnaire pour laider
rpondre lvnement. En fait, le type System.EventArgs reprsente un jeu
dinformation vide. Lorsquun vnement transmet des informations au
gestionnaire, la signature de lvnement est lgrement diffrente et e est dun
autre type.

Par exemple, lvnement DragDrop de lobjet QuitterToolStripMenuItem envoie des
informations de positionnement trs utile pour grer le glisser dplacer de llment. La
signature dun gestionnaire pour cet vnement fait donc appel un argument e de type
plus complexe : System.DragEventArgs.



Microsoft Crer sa premire application VB.NET Atelier 2

Printemps 2008 Coach VB.NET Page 67 sur 94


La signature dune procdure en rponse un vnement ne peut donc pas tre
invente. Lorsque le systme excute les procdures en rponse un vnement, il ne
peut invoquer que des mthodes respectant rigoureusement la signature attendue. Cest
sa manire de communiquer avec vous pour vous transmettre des informations
pertinentes sur ce qui se passe dans lapplication.


Vous retrouvez galement tous les vnements disponibles sur un objet partir de la
fentre de Proprits de lobjet en mode Design.

Afficher le Concepteur de formulaire du fichier Main.vb.
Slectionnez le menu Quitter puis faites un clic droit > Proprits pour afficher la
fentre de proprits pour cet objet.

Microsoft Crer sa premire application VB.NET Atelier 2

Printemps 2008 Coach VB.NET Page 68 sur 94




Dans la fentre Proprits, cliquez le bouton de la barre doutils pour afficher
lensemble des vnements correspondant. Vous devez retrouver le nom de la
procdure quitterToolStripMenuItem_Click en face de lvnement Click indiquant
que lvnement possde un gestionnaire dvnement :


Microsoft Crer sa premire application VB.NET Atelier 2

Printemps 2008 Coach VB.NET Page 69 sur 94




Il suffit de cliquer sur le bouton de la barre doutils de la fentre Proprits pour
revenir la liste des proprits de lobjet.


Pour gnrer automatiquement un gestionnaire en rponse un vnement, reprez
lvnement dans la liste puis double cliquez dans la zone de texte droite du nom de
lvnement. Visual Studio bascule dans la fentre de code et gnre une procdure sur
la base du format de nom que nous avons tudi prcdemment.


Pour tout savoir sur les vnements et gestionnaires dvnements :
http://msdn.microsoft.com/fr-fr/library/2z7x8ys3(VS.80).aspx
Pour en savoir plus sur les clauses WithEvents et Handles :
http://msdn.microsoft.com/fr-fr/library/stf7ebaz(VS.80).aspx
Et enfin, si vous voulez voir comment cela se passe avec lapproche par code, plus souple
et dynamique :
http://msdn.microsoft.com/fr-fr/library/6yyk8z93(VS.80).aspx

4. Codez maintenant la fermeture du formulaire :
Revenez sur la dfinition de la procdure QuitterToolStripMenuItem_Click dans le
fichier Main.vb.
Ajoutez le code suivant :

Code VB
Public Class Main
Microsoft Crer sa premire application VB.NET Atelier 2

Printemps 2008 Coach VB.NET Page 70 sur 94



Private Sub QuitterToolStripMenuItem_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) _
Handles QuitterToolStripMenuItem.Click
'Fermeture du formulaire
Me.Close()
End Sub
End Class



Que signifie le mot Me ?
Le mot cl Me rfrence lobjet dans lequel le code sexcute au passage de la ligne
courante. Dans notre cas, nous dveloppons la classe Main. Me permet donc de
retrouver linstance de notre classe Main qui va tre cre au moment de lexcution du
programme.


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


Et que signifie Close() ?
Il sagit dune mthode de lobjet rfrenc par Me, cest--dire par linstance en cours
de notre classe Main. Et vous vous en doutez, cest une mthode dont laction est bien
sr de fermer (close) le formulaire.
Mais notre classe Main na pas de mthode appele Close Alors do sort-elle ?

Microsoft Crer sa premire application VB.NET Atelier 2

Printemps 2008 Coach VB.NET Page 71 sur 94






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 de solutions, ouvrez nouveau le fichier
Main.Designer.vb.
Notez la dfinition de la classe Main tout en haut du fichier.





Si vous cherchez la mthode Close dans le fichier Main.Designer.vb, vous ne la
trouverez pas, et pour cause puisque ce fichier ne fait que traduire ce que vous
dessinez avec Visual Studio dans le formulaire et nous navons rien fait en rapport avec
la fermeture du formulaire.

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.

Que signifie lhritage ?
Notre classe ne contient pour
linstant quune seule
mthode !
Microsoft Crer sa premire application VB.NET Atelier 2

Printemps 2008 Coach VB.NET Page 72 sur 94


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.


Noubliez pas que la de MSDN vous permet de retrouver toutes les
caractristiques de nimporte quelle classe du Framework .NET. Par exemple,
retrouvez la dfinition de la classe Form sur :
http://msdn.microsoft.com/fr-fr/library/system.windows.forms.form.aspx
Consulter la rubrique Voir aussi au bas de la page pour aller sur le lien listant tous les
membres de la classe savoir ses proprits, ses mthodes et ses vnements. Cest
l que vous trouverez la dfinition de la mthode Close.


5. Et si vous testiez votre premire ligne de code ?
Enregistrez tous vos changements.
Lancez lexcution de lapplication (F5).
Cliquez le menu Fichier > Quitter. Le formulaire doit se fermer et dans la foule,
lexcution de lapplication doit sarrter.

Microsoft Crer sa premire application VB.NET Atelier 2

Printemps 2008 Coach VB.NET Page 73 sur 94




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.
AFFICHER LAPPLICATI ON DANS LA ZONE DE NOTIFICATION
Dans cet exercice, vous allez maintenant manipuler un composant Windows Form. Il sagit du
composant NotifyIcon qui affiche une icne dans la zone de notification dtat de la barre des tches
de Windows. Cest un composant trs utile par exemple pour contrler des applications qui
sexcutent en arrire-plan et qui nont pas dinterface utilisateur.

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.


Le procd sarticule en quatre tapes :
- Ajout dune icne de notification au programme, qui saffiche dans la zone de notification de
Windows au moment de lexcution.
Microsoft Crer sa premire application VB.NET Atelier 2

Printemps 2008 Coach VB.NET Page 74 sur 94


- Ajout dun menu contextuel au programme.
- Association du menu contextuel au clic sur licne de notification.
- Codage de loption Quitter du menu contextuel pour fermer le formulaire.

Droulement de lexercice :

1. Etape 1 : ajout dune icne de notification lapplication :
Ouvrez le formulaire Main.vb en mode Design en double-cliquant sur le fichier
Main.vb dans lExplorateur de solutions.
Faites un glisser dplacer de la Boite outils, rubrique Contrles communs > du
composant NotifyIcon nimporte o sur la surface du formulaire.




Comme il sagit dun composant, cest--dire quil na pas dquivalence graphique
directement sur le formulaire, Visual Studio nous laffiche directement dans la zone de
dpt de contrles en dessous du formulaire, sous la forme dun objet nomm
NotifyIcon1.
Microsoft Crer sa premire application VB.NET Atelier 2

Printemps 2008 Coach VB.NET Page 75 sur 94



Au travers dune balise active (smart tag)
qui apparat en haut droite du contrle
lorsque celui-ci est slectionn, Visual
Studio nous propose des raccourcis vers les
actions de configuration type pour
paramtrer le plus rapidement possible ce
contrle. En loccurrence ici, il faut
principalement lui associer une icne pour
lafficher dans la zone de notification dtat
de la barre des tches de Windows. Mais
une fois nest pas coutume, nous nallons
pas utiliser cette approche dclarative et
opter pour une configuration de licne de
notification par code en utilisant les
ressources du projet .


Pour tout savoir sur le composant Windows Forms NotifyIcon :
http://msdn.microsoft.com/fr-fr/library/7yyz6s5c(VS.80).aspx

Afficher les proprits du composant par un clic droit > Proprits.
Modifiez le nom du composant par mainNotifyIcon en changeant la valeur de la
proprit (Name). Cette proprit apparat parmi les premires si vous tes en
classement alphabtique (bouton de la barre doutils de la fentre Proprits).
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.

Microsoft Crer sa premire application VB.NET Atelier 2

Printemps 2008 Coach VB.NET Page 76 sur 94





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.

Comment configurer licne par code ?
Les images, les icnes ou encore les fichiers audio sont ce quon appelle des
ressources du programme. Nous allons rcuprer une icne et la lier au projet en
utilisant le Concepteur de ressources du projet puis nous paramtrerons la proprit
Icon du contrle mainNotifyIcon avec la ressource ajoute.

2. Configurez licne du composant de notification avec un fichier icne fourni avec le code de
latelier :
A partir de lExplorateur de solutions, affichez le Concepteur de projets en cliquant
sur My Project.
Slectionnez longlet Ressources.

Microsoft Crer sa premire application VB.NET Atelier 2

Printemps 2008 Coach VB.NET Page 77 sur 94




Sur lcran de gestion des ressources, cliquez le menu Ajouter une ressource >
ajouter un fichier existant :



Dans la bote de dialogue Ajouter le fichier existant aux ressources, naviguez
jusquau rpertoire ..\Atelier 2\Fichiers utiles fourni avec cet atelier.
Slectionnez le fichier lan_connected.ico puis cliquez le bouton Ouvrir.

Microsoft Crer sa premire application VB.NET Atelier 2

Printemps 2008 Coach VB.NET Page 78 sur 94





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.
Microsoft Crer sa premire application VB.NET Atelier 2

Printemps 2008 Coach VB.NET Page 79 sur 94



Fermez le Concepteur de ressources du projet.
Enregistrez vos modifications sur le projet.


Il faut maintenant charger la proprit Icon du composant mainNotifyIcon avec la
ressource que nous venons dajouter au programme.


O doit-on brancher le code de configuration de la proprit Icon du composant ?
La question serait plutt quand puisque nous dveloppons avec une approche
vnementielle. Lidal serait dagir au tout dbut de la vie du formulaire pour que licne
apparaisse dans la zone de notification de Windows ds le dmarrage de lexcution.

Quel est le tout premier vnement disponible sur un objet ?
Il sagit de son constructeur. Le constructeur est une mthode membre dune classe
qui est appele par le systme au moment de la construction de lobjet. On dit aussi que
le nouvel objet est instanci. Du coup, cette mthode sert crer convenablement une
instance dobjet pour la classe, en le configurant dans un tat valide.

Un constructeur en VB est une mthode publique nomme New sans aucune valeur de
retour.

Ouvrez le fichier de code Main.vb.
Entrez directement sous la dfinition de la classe Main la ligne suivante :

Code VB
Public Class Main
Microsoft Crer sa premire application VB.NET Atelier 2

Printemps 2008 Coach VB.NET Page 80 sur 94



Public Sub New

Private Sub QuitterToolStripMenuItem_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) _
Handles QuitterToolStripMenuItem.Click

End Sub
End Class


Validez par Entre. Visual Studio rajoute la suite de la procdure pour vous !

Code VB
Public Class Main

Public Sub New()

' Cet appel est requis par le Concepteur Windows Form.
InitializeComponent()

' Ajoutez une initialisation quelconque aprs l'appel
' InitializeComponent().

End Sub
Microsoft Crer sa premire application VB.NET Atelier 2

Printemps 2008 Coach VB.NET Page 81 sur 94



Private Sub QuitterToolStripMenuItem_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) _
Handles QuitterToolStripMenuItem.Click

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 !

Dans le constructeur de la classe, ajoutez maintenant le code pour initialiser licne
du contrle mainNotifyIcon avec celui charg dans les ressources du projet.

Code VB
Public Class Main

Public Sub New()

' Cet appel est requis par le Concepteur Windows Form.
InitializeComponent()

Microsoft Crer sa premire application VB.NET Atelier 2

Printemps 2008 Coach VB.NET Page 82 sur 94


' Ajoutez une initialisation quelconque aprs l'appel
' InitializeComponent().
mainNotifyIcon.Icon = My.Resources.lan_connected

End Sub

End Class



Vous vous souvenez de lobjet My ?
Cest un espace de noms qui contient des classes donnant des raccourcis vers les
fonctionnalits les plus couramment utilises du Framework. My.Resources donne un
accs simple et rapide aux ressources de lapplication.


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.




3. Testez le fonctionnement de licne de notification de lapplication :
Enregistrez tous les changements.
Vous devez voir votre icne en tant
que ressource.
Microsoft Crer sa premire application VB.NET Atelier 2

Printemps 2008 Coach VB.NET Page 83 sur 94


Lancez lexcution de lapplication (F5) pour tester le fonctionnement de licne de
notification.
Vrifiez la prsence de licne de connexion dans la zone de notification dtat de la
barre des tches de Windows.
Arrtez le curseur de la souris sur licne pour valider le texte daide (tooltip).




4. Etape 2 : ajout dun menu contextuel au programme :
Revenez sur le formulaire Main.vb en mode Design.
Faites un glisser dplacer de la Bote outils > rubrique Menus et barre doutils >
du contrle ContextMenuStrip nimporte o sur la surface du formulaire :




Deux nouveaux lments apparaissent sur le formulaire :
- Une barre de menu vide sous la barre de titre de la fentre,
Microsoft Crer sa premire application VB.NET Atelier 2

Printemps 2008 Coach VB.NET Page 84 sur 94


- Et un composant nomm contextMenuStrip1 dans la zone de dpt de
contrles.




Vous observez un comportement rigoureusement identique celui du contrle
MenuStrip, ceci prs qu lexcution un menu contextuel de type ContextMenuStrip
napparat que dans le contexte pour lequel il est dfini (do son nom). Donc le
positionnement du menu juste en dessous du menu principal du formulaire ne fait pas
foi. Mais il faut bien que Visual Studio vous laffiche quelque part proprement pour vous
permettre de le construire .
Dans notre cas, nous allons lassocier au composant mainNotifyIcon pour quil
apparaisse sur le clic droit de licne dans la zone de notification dtat de la barre des
tches de Windows.

Zone de dessin du
menu
Contrle sur la zone
de dpt
Microsoft Crer sa premire application VB.NET Atelier 2

Printemps 2008 Coach VB.NET Page 85 sur 94



Pour tout savoir sur le contrle Windows Forms ContextMenuStrip :
http://msdn.microsoft.com/fr-fr/library/ms229641(VS.80).aspx

5. Configurez les options du menu contextuel :
Slectionnez le contrle contextMenuStrip1 dans la zone de dpt de contrles et
faites un clic droit > Proprits pour faire apparatre sa fentre de proprits.
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 :



Saisissez Maximiser la fentre puis validez par Entre :

Zone de saisie des options de
menu
Microsoft Crer sa premire application VB.NET Atelier 2

Printemps 2008 Coach VB.NET Page 86 sur 94




Recommencez lopration avec les options Restaurer la fentre, Minimiser la
fentre, et Quitter lapplication :




Cliquez sur la flche qui apparat droite de la zone (lorsque vous
la slectionner) en dessous de loption Quitter lapplication. Dans la liste droulante,
slectionnez Separator pour insrer une ligne de sparation dans la liste des menus :



Zone de saisie dventuels sous
menus de loption Quitter
lapplicaton.
Microsoft Crer sa premire application VB.NET Atelier 2

Printemps 2008 Coach VB.NET Page 87 sur 94


Faites un glisser-dplacer de la ligne de sparation afin de la positionner avant le
menu Quitter lapplication :



Enregistrez vos changements.

6. Etape 3 : association du menu contextuel au clic sur licne de notification :
Slectionnez le contrle mainNotifyIcon dans la zone de dpt de contrles, puis
faites un clic droit > Proprits ;
Dans les proprits du contrle, changez la valeur de ContextMenuStrip en utilisant
la liste droulante propose, et selectionnez mainNotifyIconContextMenuStrip :



7. Testez le fonctionnement de licne de notification de lapplication :
Enregistrez tous les changements.
Sparateur positionn ici par
glisser dplacer.
Microsoft Crer sa premire application VB.NET Atelier 2

Printemps 2008 Coach VB.NET Page 88 sur 94


Lancez lexcution de lapplication (F5).
Vrifiez la prsence de licne de connexion dans la zone de notification dtat de la
barre des tches de Windows.
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.

8. Etape 4 : codage de loption Quitter lapplication :
Slectionnez le contrle mainNotifyIconContextMenuStrip dans la zone de dpt
de contrles afin de le faire apparatre sur le formulaire.
Double cliquez sur loption du menu contextuel Quitter lapplication pour gnrer la
procdure de rponse lvnement Click sur loption de menu :

Faites un clic droit sur
licne pour voir
apparatre le menu.
Microsoft Crer sa premire application VB.NET Atelier 2

Printemps 2008 Coach VB.NET Page 89 sur 94





Visual Studio bascule dans la fentre de code et gnre la suite des membres de la
classe Main, une nouvelle mthode nomme
QuitterLapplicationToolStripMenuItem_Click.





Ajoutez le code de fermeture du formulaire :
Etape 1 : Slectionnez
dabord le contrle pour le
faire apparatre sur le
formulaire.
Etape 2 : Double cliquez
sur loption pour basculer
dans la fentre de code.
Nom de lvnement associ au
gestionnaire dvnement.
Microsoft Crer sa premire application VB.NET Atelier 2

Printemps 2008 Coach VB.NET Page 90 sur 94



Code VB
Private Sub QuitterLapplicationToolStripMenuItem_Click( _
ByVal sender As System.Object, _
ByVal e As System.EventArgs) _
Handles QuitterLapplicationToolStripMenuItem.Click
'Fermeture du formulaire
Me.Close()
End Sub



Ca ne vous rappelle rien ce code ? Cest videmment rigoureusement le mme que
celui que nous avons programm dans la procdure associe au clic de loption Quitter
du menu principal du formulaire.

Ce qui nous amne la question suivante :
Est-ce quon ne pourrait pas rcuprer le code du gestionnaire dvnement
QuitterToolStripMenuItem_Click pour lappliquer lvnement Click sur loption
Quitter lapplication du menu contextuel ?

La rponse est oui, vous vous en doutez. Mais comment ?
Cest le mot cl Handles qui dtermine sur quel vnement sabonne le gestionnaire
dvnement correspondant. Alors pourquoi ne pas ajouter un nouvel vnement au
gestionnaire QuitterToolStripMenuItem_Click que nous avions crit pour loption
Quitter du menu principal, pour quil prenne en charge aussi le clic de lutilisateur sur
loption Quitter lapplication du menu contextuel de licne de notification. Il suffit de le
brancher galement sur lvnement Click de lobjet
QuitterLapplicationToolStripMenuItem.

Microsoft Crer sa premire application VB.NET Atelier 2

Printemps 2008 Coach VB.NET Page 91 sur 94


Reprenez le gestionnaire dvnement QuitterToolStripMenuItem _Click et ajoutez-
lui le second vnement spar par une virgule.
Supprimez la mthode QuitterLapplicationToolStripMenuItem_Click qui ne sert
plus rien.





Une bonne pratique serait de renommer le gestionnaire dvnement avec un nom plus
gnrique qui reflterait son action.

Renommez par exemple la mthode QuitterToolStripMenuItem_Click en
FormClose.

Microsoft Crer sa premire application VB.NET Atelier 2

Printemps 2008 Coach VB.NET Page 92 sur 94




9. Testez le clic sur loption de menu contextuel associ licne de notification :
Enregistrez tous les changements.
Lancez lexcution de lapplication (F5).
Faites un clic droit sur licne pour faire apparatre le menu contextuel.
Vrifiez que lapplication sarrte proprement en cliquant loption Quitter lapplication
du menu contextuel.



Relancez lexcution de lapplication (F5).
Vrifiez la fermeture du formulaire sur un clic de loption Quitter du menu principal.

Microsoft Crer sa premire application VB.NET Atelier 2

Printemps 2008 Coach VB.NET Page 93 sur 94



En conclusion, avec les clauses WithEvents et Handles, il est possible dautoriser un
gestionnaire dvnements grer un ou plusieurs types dvnements.
Cest un peu comme dans une maison, souvent dans une mme pice vous avez
plusieurs boutons qui provoquent lallumage dun mme jeu de plafonnier.

Types dvnement Gestionnaire dvnement






A linverse, un ou plusieurs gestionnaires dvnements peuvent tre configurs pour
grer un mme type dvnements. Cest--dire que le clic dun bouton de la pice peut
allumer le plafonnier de la pice et celui galement du hall voisin.

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.
Clic sur bouton A
Clic sur bouton B
Clic sur bouton A
Microsoft Crer sa premire application VB.NET Atelier 2

Printemps 2008 Coach VB.NET Page 94 sur 94


POUR ALLER PLUS LOIN
Il existe dautres alternatives aux diffrents procds illustrs dans cet atelier. Par exemple, une autre
alternative pour excuter et fermer une application consiste utiliser lobjet Application du
Framework .NET et ses mthodes Run et Exit :


Pour Application.Run() :
http://msdn.microsoft.com/fr-
fr/library/system.windows.forms.application.run(VS.80).aspx
Pour Application.Exit() :
http://msdn.microsoft.com/fr-
fr/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.

Vous aimerez peut-être aussi