Atelier 2 - Creer Sa Premiere Application VB NET

  • Upload
    misalie

  • View
    281

  • Download
    4

Embed Size (px)

Citation preview

Crer sa premire application VB.NEThttp://msdn.microsoft.com/vbasic

Page 1 sur 94

Microsoft

Crer sa premire application VB.NET Atelier 2

SOMMAIRE

1

INTRODUCTION ................................................................................................................................................... 3 1.1 1.2 CONTEXTE FONCTIONNEL ............................................................................................................................. 3 CONTEXTE TECHNIQUE ................................................................................................................................. 6

2

CRER LE PROJET ET LA FENTRE PRINCIPALE ...................................................................................................... 7 2.1 2.2 2.3 2.4 CRER LA SOLUTION DE PROJET ...................................................................................................................... 8 CONTRLER LE DMARRAGE DE LAPPLICATION ............................................................................................... 12 COMPRENDRE LE FONCTIONNEMENT DUN FORMULAIRE .................................................................................. 26 CONTRLER LAFFICHAGE ET LARRT DE LAPPLICATION ................................................................................... 40

3

TRAVAILLER BASE DE CONTRLES (COMPOSANTS) ........................................................................................ 42 3.1 3.2 3.3 3.4 CONFIGURER LES CARACTRISTIQUES DE LA FENTRE PRINCIPALE ........................................................................ 44 CONSTRUIRE LE MENU DE LAPPLICATION....................................................................................................... 48 CODER LA FERMETURE DE LAPPLICATION....................................................................................................... 57 AFFICHER LAPPLICATION DANS LA ZONE DE NOTIFICATION ................................................................................ 73

4

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

Printemps 2008

Coach VB.NET

Page 2 sur 94

Microsoft

Crer sa premire application VB.NET Atelier 2

INTRODUCTION CONTEXTE FONCTIONNELRappel 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.

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

427 pixels

Microsoft

Crer sa premire application VB.NET Atelier 2

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

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

Printemps 2008

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, Coach VB.NET Page 6 sur 94

Microsoft

Crer sa premire application VB.NET Atelier 2

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

Microsoft

Crer sa premire application VB.NET Atelier 2

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

Microsoft

Crer sa premire application VB.NET Atelier 2

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

Microsoft

Crer sa premire application VB.NET Atelier 2

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

Microsoft

Crer sa premire application VB.NET Atelier 2

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

Microsoft

Crer sa premire application VB.NET Atelier 2

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

Microsoft

Crer sa premire application VB.NET Atelier 2

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

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

Printemps 2008

Coach VB.NET

Page 13 sur 94

Microsoft

Crer sa premire application VB.NET Atelier 2

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

Microsoft

Crer sa premire application VB.NET Atelier 2

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

Microsoft

Crer sa premire application VB.NET Atelier 2

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

Microsoft

Crer sa premire application VB.NET Atelier 2

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.

Printemps 2008

Coach VB.NET

Page 17 sur 94

Microsoft

Crer sa premire application VB.NET Atelier 2

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

Modle dcran de dmarrage

Modle pour ajouter un nouveau formulaire

Printemps 2008

Coach VB.NET

Page 18 sur 94

Microsoft

Crer sa premire application VB.NET Atelier 2

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

Printemps 2008

Coach VB.NET

Page 19 sur 94

Microsoft

Crer sa premire application VB.NET Atelier 2

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 :

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

Printemps 2008

Coach VB.NET

Page 20 sur 94

Microsoft

Crer sa premire application VB.NET Atelier 2

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

Microsoft

Crer sa premire application VB.NET Atelier 2

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

Microsoft

Crer sa premire application VB.NET Atelier 2

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

Microsoft

Crer sa premire application VB.NET Atelier 2

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

Microsoft

Crer sa premire application VB.NET Atelier 2

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

Microsoft

Crer sa premire application VB.NET Atelier 2

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

Microsoft

Crer sa premire application VB.NET Atelier 2

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. dans la barre doutils de lExplorateur de

Printemps 2008

Coach VB.NET

Page 27 sur 94

Microsoft

Crer sa premire application VB.NET Atelier 2

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

Microsoft

Crer sa premire application VB.NET Atelier 2

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

Microsoft

Crer sa premire application VB.NET Atelier 2

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

Microsoft

Crer sa premire application VB.NET Atelier 2

-

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

Microsoft

Crer sa premire application VB.NET Atelier 2

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

Microsoft

Crer sa premire application VB.NET Atelier 2

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

Microsoft

Crer sa premire application VB.NET Atelier 2

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. cliquant sur le fichier

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. Coach VB.NET Page 34 sur 94

Printemps 2008

Microsoft

Crer sa premire application VB.NET Atelier 2

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 : Le bouton Le bouton Le bouton affiche les proprits en les triant par catgorie ; affiche les proprits en les triant par nom ; 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

Printemps 2008

Microsoft

Crer sa premire application VB.NET Atelier 2

-

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.

Printemps 2008

Coach VB.NET

Page 36 sur 94

Microsoft

Crer sa premire application VB.NET Atelier 2

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

Microsoft

Crer sa premire application VB.NET Atelier 2

Cliquez Ouvrir.

Cliquez OK.

Printemps 2008

Coach VB.NET

Page 38 sur 94

Microsoft

Crer sa premire application VB.NET Atelier 2

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

Microsoft

Crer sa premire application VB.NET Atelier 2

CONTROLER LAFFICHAGE ET LARRET DE LAPPLICATIONMaintenant 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

Microsoft

Crer sa premire application VB.NET Atelier 2

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

Microsoft

Crer sa premire application VB.NET Atelier 2

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

Microsoft

Crer sa premire application VB.NET Atelier 2

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

Microsoft

Crer sa premire application VB.NET Atelier 2

-

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

Microsoft

Crer sa premire application VB.NET Atelier 2

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

Microsoft

Crer sa premire application VB.NET Atelier 2

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

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

Printemps 2008

Coach VB.NET

Page 46 sur 94

Microsoft

Crer sa premire application VB.NET Atelier 2

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

Microsoft

Crer sa premire application VB.NET Atelier 2

727 pixels

CONSTRUIRE LE MENU DE LAPPLICATIONDans 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

427 pixels

Le nouveau titre saffiche dans la barre de titre de la fentre Main.

Microsoft

Crer sa premire application VB.NET Atelier 2

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

Microsoft

Crer sa premire application VB.NET Atelier 2

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

Microsoft

Crer sa premire application VB.NET Atelier 2

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

Microsoft

Crer sa premire application VB.NET Atelier 2

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

(sauf si

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

Page 52 sur 94

Microsoft

Crer sa premire application VB.NET Atelier 2

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

Microsoft

Crer sa premire application VB.NET Atelier 2

?

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

Microsoft

Crer sa premire application VB.NET Atelier 2

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

Microsoft

Crer sa premire application VB.NET Atelier 2

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

Microsoft

Crer sa premire application VB.NET Atelier 2

Avant de poursuivre, enregistrez toutes vos modifications.

CODER LA FERMETURE DE LAPPLICATIONMaintenant 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

Microsoft

Crer sa premire application VB.NET Atelier 2

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.

Printemps 2008

Coach VB.NET

Page 58 sur 94

Microsoft

Crer sa premire application VB.NET Atelier 2

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

Microsoft

Crer sa premire application VB.NET Atelier 2

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

Microsoft

Crer sa premire application VB.NET Atelier 2

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

Microsoft

Crer sa premire application VB.NET Atelier 2

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

Microsoft

Crer sa premire application VB.NET Atelier 2

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

-

Alors que le nom de lvnement est not :

point .

En fait le nom de la procdure importe peu. Vous pourriez par exemple remplacer sans hsiter QuitterToolStripMenuItem_Click par Quitter. En revanche, le nom de lvnement auquel vous laccrochez est trs important, de mme que la signature de la procdure.

Printemps 2008

Coach VB.NET

Page 63 sur 94

Microsoft

Crer sa premire application VB.NET Atelier 2

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.

lobjet

Nom de la classe

Nom de la mthode

Tous les autres lments de la liste sont des objets qui font partie de votre formulaire, pour la plupart gnrs par laction dajout des lments standards au menu mainMenuStrip. Le premier lment de la liste, (Main Evnements) correspond lobjet formulaire lui-mme pour lequel le Framework .NET fournit toute une batterie dvnements caractrisant le cycle de vie du formulaire.

Printemps 2008

Coach VB.NET

Page 64 sur 94

Microsoft

Crer sa premire application VB.NET Atelier 2

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

Microsoft

Crer sa premire application VB.NET Atelier 2

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

Microsoft

Crer sa premire application VB.NET Atelier 2

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

Microsoft

Crer sa premire application VB.NET Atelier 2

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 :

Printemps 2008

Coach VB.NET

Page 68 sur 94

Microsoft

Crer sa premire application VB.NET Atelier 2

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

Microsoft

Crer sa premire application VB.NET Atelier 2

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

Microsoft

Crer sa premire application VB.NET Atelier 2

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.

de

solutions,

ouvrez

nouveau

le

fichier

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 ? Printemps 2008 Coach VB.NET Page 71 sur 94

Microsoft

Crer sa premire application VB.NET Atelier 2

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 NOTIFICATIONDans 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. Coach VB.NET Page 73 sur 94

Printemps 2008

Microsoft

Crer sa premire application VB.NET Atelier 2

-

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

Microsoft

Crer sa premire application VB.NET Atelier 2

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.

Printemps 2008

Coach VB.NET

Page 75 sur 94

Microsoft

Crer sa premire application VB.NET Atelier 2

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

Microsoft

Crer sa premire application VB.NET Atelier 2

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

Microsoft

Crer sa premire application VB.NET Atelier 2

Nous avons choisi titre dexemple une icne reprsentant une connexion LAN . On pourrait en effet imaginer que votre application ait besoin un moment ou un autre dtre connecte Internet ou sur le rseau de lentreprise. Dans ce cas, il pourrait tre intressant de dtecter par programmation ltat de connexion de la machine de lutilisateur et de modifier licne affiche par le composant mainNotifyIcon en consquence, afin de donner lutilisateur une indication sur la connectivit de lapplication en cours. Licne correspondrait par exemple ltat dconnect. Nous nallons charger quune seule icne dans le projet ce stade du tutorial.

Le fichier est automatiquement li au projet.

Printemps 2008

Coach VB.NET

Page 78 sur 94

Microsoft

Crer sa premire application VB.NET Atelier 2

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

Microsoft

Crer sa premire application VB.NET Atelier 2

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

Microsoft

Crer sa premire application VB.NET Atelier 2

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

Microsoft

Crer sa premire application VB.NET Atelier 2

' 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 : Enregistrez tous les changements.

Printemps 2008

Coach VB.NET

Page 82 sur 94

Microsoft

Crer sa premire application VB.NET Atelier 2

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

Microsoft

Crer sa premire application VB.NET Atelier 2

-

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

Microsoft

Crer sa premire application VB.NET Atelier 2

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

Saisissez Maximiser la fentre puis validez par Entre :

Printemps 2008

Coach VB.NET

Page 85 sur 94

Microsoft

Crer sa premire application VB.NET Atelier 2

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

Zone de saisie dventuels sous menus de loption Quitter lapplicaton.

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 :

Printemps 2008

Coach VB.NET

Page 86 sur 94

Microsoft

Crer sa premire application VB.NET Atelier 2

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

Microsoft

Crer sa premire application VB.NET Atelier 2

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

Microsoft

Crer sa premire application VB.NET Atelier 2

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.

Ajoutez le code de fermeture du formulaire :

Printemps 2008

Coach VB.NET

Page 89 sur 94

Microsoft

Crer sa premire application VB.NET Atelier 2

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

Microsoft

Crer sa premire application VB.NET Atelier 2

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.

Renommez par FormClose.

exemple

la

mthode

QuitterToolStripMenuItem_Click

en

Printemps 2008

Coach VB.NET

Page 91 sur 94

Microsoft

Crer sa premire application VB.NET Atelier 2

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

Microsoft

Crer sa premire application VB.NET Atelier 2

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

Microsoft

Crer sa premire application VB.NET Atelier 2

POUR ALLER PLUS LOINIl 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