Vous êtes sur la page 1sur 94

Crer sa premire application

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

Page 1 sur 94

Crer sa premire application VB.NET Atelier 2

Microsoft

SOMMAIRE

INTRODUCTION ................................................................................................................................................... 3
1.1

CONTEXTE FONCTIONNEL ............................................................................................................................. 3

1.2

CONTEXTE TECHNIQUE ................................................................................................................................. 6

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

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

POUR ALLER PLUS LOIN ................................................................................................................................... 94

Printemps 2008

Coach VB.NET

Page 2 sur 94

Crer sa premire application VB.NET Atelier 2

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 :

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 :

Printemps 2008

Coach VB.NET

Page 3 sur 94

Microsoft

Crer sa premire application VB.NET Atelier 2

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 :

Printemps 2008

Coach VB.NET

Page 4 sur 94

Microsoft

Crer sa premire application VB.NET Atelier 2

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

Barre de menu principal de lapplication contenant les


options de menu standards Fichier, Edition, Outils et
Aide.

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

Crer sa premire application VB.NET Atelier 2

Microsoft

Icne de notification de lexcution


de lapplication.
Menu contextuel qui saffiche sur
un clic droit de licne de
notification.

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,

Printemps 2008

Coach VB.NET

Page 6 sur 94

Crer sa premire application VB.NET Atelier 2

Microsoft

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 :

Printemps 2008

Coach VB.NET

Page 7 sur 94

Crer sa premire application VB.NET Atelier 2

Microsoft

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

Printemps 2008

Coach VB.NET

Page 8 sur 94

Crer sa premire application VB.NET Atelier 2

Microsoft

Dans la fentre Nouveau projet, slectionnez le modle de projet Application


Windows Forms et indiquez Coach.Editeur comme nom de projet.

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

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.

Printemps 2008

Coach VB.NET

Page 9 sur 94

Crer sa premire application VB.NET Atelier 2

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.

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

Printemps 2008

Coach VB.NET

Page 10 sur 94

Crer sa premire application VB.NET Atelier 2

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

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


Coach VB.NET

Page 11 sur 94

Crer sa premire application VB.NET Atelier 2

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.

Cochez la case Crer le rpertoire pour la solution et saisissez un nom pour la


solution par exemple : Atelier 2.

Chemin par dfaut dfini dans les options de Visual


Studio.

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
Printemps 2008

Coach VB.NET

Page 12 sur 94

Crer sa premire application VB.NET Atelier 2

Microsoft

dmarrer.

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

Printemps 2008

Dans longlet Application, vrifiez que le formulaire de dmarrage est correctement


configur sur Form1.

Coach VB.NET

Page 13 sur 94

Crer sa premire application VB.NET Atelier 2

Microsoft

Systme de navigation avec onglets du


Concepteur de projets

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

Crer sa premire application VB.NET Atelier 2

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

Pour en savoir plus sur la mthode Run de la classe Application :


http://msdn.microsoft.com/fr-fr/library/ms157902(VS.85).aspx

Printemps 2008

Coach VB.NET

Page 15 sur 94

Crer sa premire application VB.NET Atelier 2

Microsoft

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


doutils standard ou via le raccourci F5.

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

Crer sa premire application VB.NET Atelier 2

Microsoft

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 :

Printemps 2008

Dans lExplorateur de Solutions, faites un clic-droit sur la racine du projet


Coach.Editeur > Ajouter > Nouvel lment.

Coach VB.NET

Page 17 sur 94

Crer sa premire application VB.NET Atelier 2

Microsoft

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

Printemps 2008

Coach VB.NET

Page 18 sur 94

Crer sa premire application VB.NET Atelier 2

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.

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

Printemps 2008

La premire, est de vous reposer sur Visual Studio qui, ne loublions pas,

Coach VB.NET

Page 19 sur 94

Crer sa premire application VB.NET Atelier 2

Microsoft

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


Coach.Editeur laide du Concepteur de projets de Visual Studio :

dmarrage

du

projet

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 :

Printemps 2008

Dans longlet Application, slectionnez le formulaire SplashScreen dans la liste de


la proprit Ecran de dmarrage.

Coach VB.NET

Page 20 sur 94

Crer sa premire application VB.NET Atelier 2

Microsoft

Enregistrez vos changements en cliquant sur licne


standard de Visual Studio.

dans la barre doutils

Labsence dastrisque * signifie que les


modifications sont sauvegardes.

6. Testez le comportement de lapplication en mode dexcution :

Relancez lapplication (F5).

Visual Studio affiche pendant quelques secondes notre formulaire de dmarrage. Cest
cool !

Printemps 2008

Coach VB.NET

Page 21 sur 94

Crer sa premire application VB.NET Atelier 2

Microsoft

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 :

Printemps 2008

Coach VB.NET

Page 22 sur 94

Crer sa premire application VB.NET Atelier 2

Microsoft

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 ?

Printemps 2008

Coach VB.NET

Page 23 sur 94

Crer sa premire application VB.NET Atelier 2

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.

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

Printemps 2008

Coach VB.NET

Page 24 sur 94

Crer sa premire application VB.NET Atelier 2

Microsoft

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.

Printemps 2008

Coach VB.NET

Page 25 sur 94

Crer sa premire application VB.NET Atelier 2

Microsoft

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

Printemps 2008

Coach VB.NET

Page 26 sur 94

Crer sa premire application VB.NET Atelier 2

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 :

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

Printemps 2008

dans la barre doutils de lExplorateur de

Coach VB.NET

Page 27 sur 94

Crer sa premire application VB.NET Atelier 2

Microsoft

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.

Dfinition de la classe

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
Printemps 2008

Coach VB.NET

Page 28 sur 94

Crer sa premire application VB.NET Atelier 2

Microsoft

du Copyright.

Exemple de la dfinition des proprits de la zone daffichage du numro de version

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

Crer sa premire application VB.NET Atelier 2

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

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

Printemps 2008

Coach VB.NET

Page 30 sur 94

Crer sa premire application VB.NET Atelier 2

Microsoft

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.

Printemps 2008

Coach VB.NET

Page 31 sur 94

Crer sa premire application VB.NET Atelier 2

Microsoft

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 :

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

Crer sa premire application VB.NET Atelier 2

Microsoft

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.

Printemps 2008

Coach VB.NET

Page 33 sur 94

Crer sa premire application VB.NET Atelier 2

Microsoft

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


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.

Printemps 2008

Coach VB.NET

cliquant

sur

le

fichier

Page 34 sur 94

Crer sa premire application VB.NET Atelier 2

Microsoft

Liste droulante

Elargissez la fentre pour une


meilleure visibilit si besoin en
tirant le bord gauche avec la
souris.

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 :

Printemps 2008

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) ;
Coach VB.NET

Page 35 sur 94

Crer sa premire application VB.NET Atelier 2

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

Slectionnez le bouton

Printemps 2008

droite de la zone de saisie de la valeur de la proprit.

Coach VB.NET

Page 36 sur 94

Crer sa premire application VB.NET Atelier 2

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.

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.

Printemps 2008

Coach VB.NET

Page 37 sur 94

Crer sa premire application VB.NET Atelier 2

Microsoft

Cliquez Ouvrir.

Cliquez OK.

Printemps 2008

Coach VB.NET

Page 38 sur 94

Crer sa premire application VB.NET Atelier 2

Microsoft

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 :

Printemps 2008

Coach VB.NET

Page 39 sur 94

Crer sa premire application VB.NET Atelier 2

Microsoft

CONTROLER LAFFICHAGE ET LARRET DE LAPPLICATION


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.

Printemps 2008

Coach VB.NET

Page 40 sur 94

Crer sa premire application VB.NET Atelier 2

Microsoft

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.

Printemps 2008

Coach VB.NET

Page 41 sur 94

Crer sa premire application VB.NET Atelier 2

Microsoft

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

Crer sa premire application VB.NET Atelier 2

Microsoft

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 :

Printemps 2008

Coach VB.NET

Page 43 sur 94

Crer sa premire application VB.NET Atelier 2

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

CONFIGURER LES CARACTERISTIQUES DE LA FENETRE PRINCIPALE


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.

Printemps 2008

Coach VB.NET

Page 44 sur 94

Crer sa premire application VB.NET Atelier 2

Microsoft

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

Printemps 2008

Coach VB.NET

Page 45 sur 94

Crer sa premire application VB.NET Atelier 2

Microsoft

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


pour Height (hauteur).

, et indiquez la valeur 727 pour Width (largeur) et 427

Valeurs en
pixels

Printemps 2008

Le Concepteur de formulaire rajuste automatiquement les dimensions du formulaire


en consquence :

Coach VB.NET

Page 46 sur 94

Crer sa premire application VB.NET Atelier 2

Microsoft

Enregistrez vos changements.

3. Excutez lapplication pour tester le formulaire :

Lancez lapplication (touche F5).

Le formulaire saffiche aprs lcran de dmarrage :

Printemps 2008

Coach VB.NET

Page 47 sur 94

Le nouveau titre saffiche dans la barre de titre


de la fentre Main.

427 pixels

Crer sa premire application VB.NET Atelier 2

Microsoft

727 pixels

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.

Printemps 2008

Coach VB.NET

Page 48 sur 94

Crer sa premire application VB.NET Atelier 2

Microsoft

Tous les contrles et


composants sont classs
par catgorie.

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.

Printemps 2008

Coach VB.NET

Page 49 sur 94

Crer sa premire application VB.NET Atelier 2

Microsoft

La Bote outils est vide si le fichier


sur la surface de travail est un
fichier de code.

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

Crer sa premire application VB.NET Atelier 2

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.

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.

Printemps 2008

Coach VB.NET

Page 51 sur 94

Crer sa premire application VB.NET Atelier 2

Microsoft

Ouvrez la Bote outils de Visual Studio et fixez-la en cliquant sur licne


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.

Printemps 2008

Coach VB.NET

(sauf si

Page 52 sur 94

Crer sa premire application VB.NET Atelier 2

Microsoft

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.

Barre de menu (visuelle)

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

Crer sa premire application VB.NET Atelier 2

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.

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.

Printemps 2008

Coach VB.NET

Page 54 sur 94

Crer sa premire application VB.NET Atelier 2

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.

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.

Printemps 2008

Coach VB.NET

Page 55 sur 94

Crer sa premire application VB.NET Atelier 2

Microsoft

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


suite des autres options de menu ou de sous-menu.

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

Crer sa premire application VB.NET Atelier 2

Microsoft

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.

Printemps 2008

Coach VB.NET

Page 57 sur 94

Crer sa premire application VB.NET Atelier 2

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 :

1. Gnrer une procdure associe au clic sur loption de menu Quitter :

Printemps 2008

Dans le Concepteur de formulaire, slectionner le menu Fichier de la barre de


menu du contrle mainMenuStrip puis double cliquez sur loption Quitter.

Coach VB.NET

Page 58 sur 94

Crer sa premire application VB.NET Atelier 2

Microsoft

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 :

Le design du formulaire est accessible par longlet


correspondant rest ouvert

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.

Printemps 2008

Coach VB.NET

Page 59 sur 94

Crer sa premire application VB.NET Atelier 2

Microsoft

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.

Printemps 2008

Coach VB.NET

Page 60 sur 94

Crer sa premire application VB.NET Atelier 2

Microsoft

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.

Printemps 2008

Coach VB.NET

Page 61 sur 94

Crer sa premire application VB.NET Atelier 2

Microsoft

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

Le caractre & devant la lettre Q dfinit un raccourci


clavier pour ce menu.

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
Printemps 2008

Coach VB.NET

Page 62 sur 94

Crer sa premire application VB.NET Atelier 2

Microsoft

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 :

soulign (underscore)
<nom de la variable>_<nom de lvnement>

Alors que le nom de lvnement est not :

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

Crer sa premire application VB.NET Atelier 2

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.

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


QuitterToolStripMenuItem sur lequel porte lvnement attendu.

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

Crer sa premire application VB.NET Atelier 2

Microsoft

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

Printemps 2008

Coach VB.NET

Page 65 sur 94

Crer sa premire application VB.NET Atelier 2

Microsoft

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.

Printemps 2008

Coach VB.NET

Page 66 sur 94

Crer sa premire application VB.NET Atelier 2

Microsoft

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.

Printemps 2008

Coach VB.NET

Page 67 sur 94

Crer sa premire application VB.NET Atelier 2

Microsoft

Printemps 2008

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 :

Coach VB.NET

Page 68 sur 94

Crer sa premire application VB.NET Atelier 2

Microsoft

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

Printemps 2008

Coach VB.NET

Page 69 sur 94

Crer sa premire application VB.NET Atelier 2

Microsoft

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 ?

Printemps 2008

Coach VB.NET

Page 70 sur 94

Crer sa premire application VB.NET Atelier 2

Microsoft

Notre classe ne contient pour


linstant quune seule
mthode !

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.

Notez la dfinition de la classe Main tout en haut du fichier.

de

solutions,

ouvrez

nouveau

le

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 ?


Printemps 2008

Coach VB.NET

Page 71 sur 94

Crer sa premire application VB.NET Atelier 2

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.

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.

Printemps 2008

Coach VB.NET

Page 72 sur 94

Microsoft

Crer sa premire application VB.NET Atelier 2

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

Printemps 2008

Coach VB.NET

Page 73 sur 94

Crer sa premire application VB.NET Atelier 2

Microsoft

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.

Printemps 2008

Coach VB.NET

Page 74 sur 94

Crer sa premire application VB.NET Atelier 2

Microsoft

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

Printemps 2008

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.

Coach VB.NET

Page 75 sur 94

Crer sa premire application VB.NET Atelier 2

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.

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.

Printemps 2008

Coach VB.NET

Page 76 sur 94

Crer sa premire application VB.NET Atelier 2

Microsoft

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.

Printemps 2008

Coach VB.NET

Page 77 sur 94

Crer sa premire application VB.NET Atelier 2

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

Crer sa premire application VB.NET Atelier 2

Microsoft

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

Printemps 2008

Coach VB.NET

Page 79 sur 94

Crer sa premire application VB.NET Atelier 2

Microsoft

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

Printemps 2008

Coach VB.NET

Page 80 sur 94

Crer sa premire application VB.NET Atelier 2

Microsoft

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

Printemps 2008

Coach VB.NET

Page 81 sur 94

Crer sa premire application VB.NET Atelier 2

Microsoft

' 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.
Vous devez voir votre icne en tant
que ressource.

3. Testez le fonctionnement de licne de notification de lapplication :

Printemps 2008

Enregistrez tous les changements.

Coach VB.NET

Page 82 sur 94

Crer sa premire application VB.NET Atelier 2

Microsoft

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 :


Printemps 2008

Une barre de menu vide sous la barre de titre de la fentre,


Coach VB.NET

Page 83 sur 94

Crer sa premire application VB.NET Atelier 2

Microsoft

Et un composant nomm contextMenuStrip1 dans la zone de dpt de


contrles.

Zone de dessin du
menu

Contrle sur la zone


de dpt

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.

Printemps 2008

Coach VB.NET

Page 84 sur 94

Crer sa premire application VB.NET Atelier 2

Microsoft

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 :

Zone de saisie des options de


menu

Printemps 2008

Saisissez Maximiser la fentre puis validez par Entre :

Coach VB.NET

Page 85 sur 94

Crer sa premire application VB.NET Atelier 2

Microsoft

Recommencez lopration avec les options Restaurer la fentre, Minimiser la


fentre, et Quitter lapplication :

Zone de saisie dventuels sous


menus de loption Quitter
lapplicaton.

Printemps 2008

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 :

Coach VB.NET

Page 86 sur 94

Crer sa premire application VB.NET Atelier 2

Microsoft

Faites un glisser-dplacer de la ligne de sparation afin de la positionner avant le


menu Quitter lapplication :

Sparateur positionn ici par


glisser dplacer.

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 :

Printemps 2008

Enregistrez tous les changements.


Coach VB.NET

Page 87 sur 94

Crer sa premire application VB.NET Atelier 2

Microsoft

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 :

Faites un clic droit sur


licne pour voir
apparatre le menu.

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 :

Printemps 2008

Coach VB.NET

Page 88 sur 94

Crer sa premire application VB.NET Atelier 2

Microsoft

Etape 2 : Double cliquez


sur loption pour basculer
dans la fentre de code.

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.

Nom de lvnement associ au


gestionnaire dvnement.

Printemps 2008

Ajoutez le code de fermeture du formulaire :

Coach VB.NET

Page 89 sur 94

Crer sa premire application VB.NET Atelier 2

Microsoft

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.

Printemps 2008

Coach VB.NET

Page 90 sur 94

Crer sa premire application VB.NET Atelier 2

Microsoft

Reprenez le gestionnaire dvnement QuitterToolStripMenuItem _Click et ajoutezlui 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.

Printemps 2008

Renommez par
FormClose.

exemple

la

mthode

QuitterToolStripMenuItem_Click

Coach VB.NET

en

Page 91 sur 94

Crer sa premire application VB.NET Atelier 2

Microsoft

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.

Printemps 2008

Coach VB.NET

Page 92 sur 94

Crer sa premire application VB.NET Atelier 2

Microsoft

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

Clic sur bouton A

Clic sur bouton B

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

Clic sur bouton A

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

Crer sa premire application VB.NET Atelier 2

Microsoft

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

Vous aimerez peut-être aussi