Chapitre
1 :
Concepts fondamentaux de la programmation événementielle
1. Introduction
L’objectif
de ce module est de présenter les concepts fondamentaux de la programmation
événementielle ainsi que les éléments nécessaires à une bonne prise en main de
la plate forme de développement Microsoft .Net ainsi que des environnements
classiques qui y sont dédiés.
2. Concepts de la programmation événementielle
2.1. Définir les principes de la programmation événementielle
La programmation
événementielle se différencie de la programmation classique par le fait suivant
ainsi que les principes généraux qui en découlent.
En programmation
classique (procédurale) une application est lancée et elle s’exécute
linéairement à moins d’être interrompue par quelque chose d’exceptionnel.
A chaque étape de son
exécution l’application garde le contrôle et décide si elle va interagir ou non
avec l’utilisateur. A l’étape finale l’application termine et rend le contrôle
au système d’exploitation.
Dans le cadre de la
programmation événementielle l’application s’exécute puis elle donne le
contrôle à l’utilisateur. Autrement dit elle n’effectue généralement aucune
tâche exceptée celle d’attendre que l’utilisateur réagisse et la sollicite. Cette
sollicitation se fait par le biais des événements.
2.1.1. Principes généraux de la gestion des événements
On
procède à la création des principaux objets graphiques de l’application
événementielle et on définit les méthodes de gestion des événements susceptibles
d’intéresser chacun de ces objets.
On
lance la boucle de gestion des événements. L’application se met en attente des
événements. Elle n’effectue aucune tâche d’elle-même, l’application devient
« esclave de l’utilisateur »
2.1.2. La boucle de gestion des événements
La boucle de gestion des
événements se présente sous la forme d’une boucle infinie qui
-
Récupère les événements
-
Appelle les fonctions gestionnaires pour chaque objet
2.2. Définir la notion d’événement
Un événement c’est
« quelque chose qui se produit » durant l’exécution d’une
application. En programmation structurée et pour des environnements du type
MS–DOS les interruptions systèmes donnent une idée assez proche de la notion
d’événement.
Lorsque « quelque
chose se produit » au cours de l’exécution de notre application, il faut
que :
§ Que l’application soit
informée que « quelque chose s’est produit »
§ Que l’application puisse
réagir de façon adéquate à ce « quelque chose »
Les quelques exemples
suivants sont des événements classiques gérés par la plupart des applications
présentant des interfaces graphiques.
§ Appuyer
ou relâcher un bouton de la souris
§ Appuyer
ou relâcher une touche du clavier
§ Bouger
la souris
§ La
souris entre ou sort d’une fenêtre
§ La
fenêtre a changé de taille
§ L’utilisateur
a cliqué sur un menu
Un
événement est parfois également appelé « message » qui est :
§ Envoyé
à une application ciblée
§ Déclenché
à chaque action élémentaire de l’utilisateur
2.3. Définir les procédures événementielles
Au
niveau de la gestion des événements qui surviennent dans l’exécution d’une
application on distingue deux types de méthodes ou procédures événementielles
- Les procédures événementielles relatives à l’application d’un protocole non embarqué (application des techniques de base de la gestion événementielle)
- Les techniques relatives à l’application d’un protocole embarqué (cas des plates formes de développement modernes comme Microsoft .Net Framework)
Le
cas nous intéressant le plus est celui des protocoles embarqués, il demeure
cependant très important de bien comprendre les deux principes
2.3.1. Procédures événementielles dans le cas d’un protocole non embarqué
Imaginons
qu’on écrive une boucle de gestion d’événements pour des applicatifs non
standard tels qu’un jeu vidéo. Le scénario d’utilisation ainsi que tous les objets
figurant dans le jeu étant à l’entière discrétion du développeur un Framework
pourrait difficilement gérer la boucle des événements, à ce moment là le
développeur écrit un code similaire à ceci :
while (True) {
event = GetNextEvent()
switch(event->type) {
case EVENT_E1 sur window_W1: //
pseudo-code
foo_E1_W1();
break;
case EVENT_E2 sur window-W2:
foo_E2_W2();
break;
......
En
réalité la tâche est bien plus complexe car il faut prévoir tous les cas
possible et prendre en compte les différents types d’objets graphiques
susceptibles de réagir aux mêmes événements.
2.3.2. Procédures événementielles dans le cas des protocoles embarqués
Dans
le cas des protocoles embarqués le principe utilisé est le suivant :
§ La
boucle de gestion des événements est prédéfinie
§ Le
contrôle du dialogue est embarqué dans les objets graphiques.
A
ce moment, la détection des événements se fait via
§ Les
fonctions de Callback
§ Les
listeners
En
Visual Basic .Net le mécanisme est implémenté au travers de procédures
événementielles appelées gestionnaires d’événements
3. Environnement de développement du langage utilisé :
3.1. Introduction
Nous,
humains, communiquons avec un langage complexe. En effet, notre langage est
composé de phrases, construites avec des mots qui sont eux-mêmes constitués de
différentes lettres. Mais malheureusement pour nous, les ordinateurs, eux, ne
comprennent que des 1 et des 0. Le problème est donc de savoir comment nous
allons faire pour pouvoir communiquer avec eux, car notre but final est tout de
même de programmer l’ordinateur afin d’obtenir ce que nous voulons de lui. Tout
cela en gardant à l’esprit que programmer en binaire n’est pas une alternative
envisageable.
3.2. Nécessité d’un langage intermédiaire
C’est
donc pour cette raison que l’on a inventé le langage de programmation : afin de
pouvoir communiquer avec la machine dans un langage un temps soit peu compréhensible
par l’humain, ce qui n’est de toute évidence pas le cas du langage binaire. Le
langage de programmation est donc un langage à mi-chemin entre notre langage et
celui de l’ordinateur. Grossièrement, C’est un langage qui est compréhensible à
la fois par l’homme et par le processeur de la machine.
Une
fois notre code écrit en langage de programmation, un logiciel appelé
compilateur va se charger de le traduire en langage binaire comme indiqué sur
le schéma ci-dessous. Le
compilateur est une sorte de « traducteur » langage de programmation vers le
langage binaire.
3.3. Présentation du Framework .Net
Nous
sommes aujourd’hui à la version 3.5 du Framework .NET (et bientôt 4.0). La
première version exploitable de celui-ci est sortie en 2002 et celle-ci n’a pas
cessé d’évoluer de même que son environnement de programmation dédié : Visual
Studio. En effet la version 1 .1 est sortie en 2003 puis la 2.0 en 2005 la 3.0
en 2006 et la version actuelle 3.5 sortie en 2007. Chaque mise à jour apportant
d’importantes nouveautés et améliorations.
Nativement,
la plate-forme .NET fut crée pour Windows, mais celle-ci est désormais portable
sur des systèmes Linux ou Unix, grâce à un projet intitulé MONO.
Le
Framework .NET regroupe un ensemble d’outils pour le programmeur. En effet les
technologies .Net vont nous permettre de programmer autant des applications
console et WindowsForm que des services Web, des applications Windows mobile et
bien d’autres.
Un
des avantages du Framework .Net, c’est qu’il est multi-langages. C'est-à-dire
que l’on va pouvoir programmer en VB.NET, en C#, en C++, en J# et aussi en
d’autres langages compatibles. Nous allons voir comment l’architecture du
Framework va nous permettre cela.
3.3.1. Le Common Language Specification
Nous
allons voir ici le fonctionnement de la plateforme .NET grâce à un schéma
simple.
Pour
commencer on code dans un langage compatible .NET. La Common Language
Specification (CLS) s’occupe, elle, de la compatibilité de chaque langage avec
le Framework de sorte qu’en codant avec n’importe quel langage compatible, on
aboutisse au même code intermédiaire. Chaque langage est donc compilé par son
compilateur associé pour aboutir à un code intermédiaire : le MicroSoft
Intermediate Language (MSIL).
Cette
caractéristique est typique du Framework.NET, et elle n’est pas là par hasard.
Bien évidemment, cette compatibilité multi-langages vise à faciliter la
migration d’un langage de développement spécifique vers la plateforme .Net
(exemple du Visual Basic et le VB.Net). Le processus de compilation est assez
semblable au fonctionnement du langage JAVA. Notre code source est « Pré
»compilé dans un langage intermédiaire et celui-ci sera interprété lors de
l’exécution par une machine virtuelle qui le traduira en code natif. Cette «
machine virtuelle » dans le Framework .Net, c’est la Common Language Runtime
(CLR).
3.3.2. Common Language Runtime
La
CLR a deux grandes fonctions : d’abord, elle s’occupe de l’interprétation du
code à la volée. C'est-à-dire qu’elle va compiler le code MSIL en fonctions des
besoins ce qui optimise les performances. Cela s’appelle la compilation « Just
in Time » ou « JIT ». Grâce à cette méthode on va uniquement compiler du code «
utile ». Et ensuite la Common Language Runtime va gérer la mémoire. Dotnet
France Association 6 [Notions fondamentales du langage Csharp] [Date :
25/03/09]
3.4. Qu’est ce que le C# ?
3.4.1. Un langage simple et performant pour .NET
C#
est le langage par excellence de .Net, apparu en 2001. Ce langage est comme dit
précédemment un langage de programmation orientée objet, étant un carrefour
entre différent langage comme le Java, le C++ ou encore le Visual Basic, tout
en restant un langage à part.
C’est
un langage à typage fort, c’est à dire que le type des variables est fixé à la
compilation et que celle-ci peut vérifier les erreurs de typage (à la
différence du langage PHP par exemple). Le C Sharp est très polyvalent, Il
permet de coder de simples applications consoles jusqu’à de gros programmes
avec une multitude de fenêtres, en passant par les jeux.
Souvent,
le langage C# a été comparé au java, pour qui, tout comme le C#, tout est
objet. Cependant, le langage de .NET, de part ses amélioration au fur et à
mesure de son existence, a su se forger son propre profil. En effet depuis sa
parution, on est passé de la version 2.0 à 2.5, de 2.5 à 3.0 et enfin de la
version 3.0 à 3.5, ayant dans chaque évolution bien entendu son nombre de
nouveautés. De nouveaux mots clés sont ajoutés, de nouvelles sortes de classes
et certaines syntaxes simplifiées… C’est donc au fil des années que ce langage
devint de plus en plus efficace et plus facile d’accès que beaucoup d’autres
langages orientés objet, ce qui fait aujourd’hui sa popularité.
4. Les bases du C#
4.1. Environnement de développement
Microsoft
Visual studio 2008 est l’environnement de développement dédié à la plateforme
.NET, son utilisation est donc ici plus que vivement conseillée. Toutefois les
codes de C# présentés ici pourront également être écrits au bloc-notes puis
compilés par un compilateur C# en lignes de commande.
4.2. Installation de Visual studio 2008
L’installation
du logiciel Visual studio 2008 est toute simple, sélectionnez le premier lien
sur la première fenêtre d’installation et suivez les différentes étapes.
4.3. Création d’un projet C#
Nous
allons créer ici notre premier projet C# avec notre première application
console. Lancer Visual Studio 2008 et dans le menu supérieur allez dans :
File/New/Project comme indiqué sur la capture d’écran ci-dessous.
Puis, dans la fenêtre qui s’ouvre, on va choisir
Visual C# dans le menu déroulant et « Console Application » et donner un nom à
notre projet.
Chapitre
2 :
Présentation de l’Architecture Dot Net & Règles de réalisation d’une interface
1. Présentation des composants d’une application événementielle
1.1. Création d’un nouveau projet
Pour
créer un nouveau projet, il faut suivre les étapes suivantes :
1.
Démarrez Visual Studio .NET.
2.
Dans le volet Projets récents, cliquez sur Créer :
projet ….
Ou Dans le menu Fichier, pointez sur Nouveau, puis cliquez
sur Projet.
3.
Dans le volet Types de projets, cliquez sur Projets Visual C#.
Dans le volet Modèles, cliquez sur Application Windows.
4.
Dans la zone Nom, tapez un nom de projet unique qui évoque
l’utilisation de l’application.
5.
Dans la zone Emplacement, tapez le répertoire dans lequel
enregistrer le projet ou cliquez sur le bouton Parcourir pour atteindre
le répertoire voulu.
6.
Cliquez sur OK.
7.
Le Concepteur
Windows Forms s’ouvre et affiche le formulaire Form1 pour le projet créé.
1.2. Utilisation de l’explorateur de solutions
L’Explorateur de solutions permet de visualiser des
fichiers et d’effectuer des tâches de gestion de fichiers à partir d’une
solution ou d’un projet. Une solution .NET basée sur Visual Basic apparaît
accompagnée de ses projets dans une liste hiérarchique qui contient des
informations à jour sur l’état de la solution, des projets et des fichiers.
Une solution est un conteneur de projets et
d’éléments de solutions qu’il est possible de compiler pour générer une
application. Une solution contient habituellement un ou plusieurs projets
apparentés.
Un projet est un conteneur au sein d’une
solution. Il est utilisé pour gérer, créer et déboguer de façon logique les
éléments de projet qui constituent une application.
Visual Studio .NET prend en charge de nombreux
types de fichiers et extensions associées.
Pour ouvrir l’Explorateur de solutions : Dans le menu Affichage, cliquez sur Explorateur de solutions. La fenêtre qui le contient s’affiche dans le coin
supérieur droit de la zone de développement. Vous pouvez la déplacer et la
redimensionner en utilisant la fonctionnalité glisser-déplacer standard. Par
défaut, l’Explorateur de solutions affiche uniquement certains des fichiers
stockés dans le projet. Vous pouvez modifier l’affichage de façon à voir tous
les fichiers de la solution.
Pour afficher tous les fichiers dans l’Explorateur de solutions : Dans la barre d’outils Explorateur de solutions,
cliquez sur Afficher tous les fichiers. Cette
option permet de visualiser les fichiers qui ont été créés manuellement ou au
cours de la
compilation. Il est possible de supprimer de façon définitive
les projets qui ne sont plus utiles.
Pour supprimer des projets définitivement : Dans l’Explorateur Windows, cliquez avec le bouton
droit sur le dossier qui contient la solution à supprimer et choisissez Supprimer.
Pour visualiser
des fichiers dans l’Explorateur de solutions :
1. Si l’Explorateur de solutions n’est pas déjà
ouvert, dans le menu Affichage, cliquez sur Explorateur de solutions.
2. Développez les n.uds de fichiers pour
visualiser les fichiers.
Notez la présence des fichiers Program.cs et Form1.cs. Ces fichiers font
partie de tous les projets Windows Forms.
1.3. Exécution du projet dans l’environnement de développement
Cliquez sur le bouton Démarrer dans la barre d’outils standard.
Vous pouvez également appuyer sur F5. Comme vous n’avez apporté aucune
modification au code de démarrage du projet, un formulaire vierge apparaît
lorsque le projet est exécuté.
Fermez le formulaire vierge et retournez dans l’environnement de
programmation.
1.4. Génération d’un fichier exécutable pour le projet
Dans le menu Générer, cliquez sur Générer NouvProjWindows.
Lorsque vous générez un projet ou une solution, un fichier exécutable (.exe)
est créé automatiquement dans le dossier du projet, dans un sous-dossier appelé
bin.
1.5. Exécution de l’application en dehors de l’environnement de développement
Dans le menu Démarrer, cliquez sur Exécuter et recherchez
le fichier .exe. Ce fichier se trouve dans le dossier dossier_installation\Practices\Mod01\NouvProjWindows\bin.
En exécutant l’application en dehors de l’environnement de développement
Visual Studio .NET, vous pouvez tester l’utilisation de l’application.
1.6. Fermeture du projet et fermeture de Visual Studio .NET
1. Dans le menu Fichier, cliquez sur Quitter.
2. Lorsque
vous êtes invité à enregistrer les modifications, cliquez sur Oui.
2. Présenter les formulaires, les modules standards et les modules de classes
2.1 Le concepteur Windows Form
Lorsque vous démarrez un projet dans Visual Basic .NET, le Concepteur
Windows Forms s’ouvre en mode Design et contient le formulaire Form1 pour le
projet. Vous devez placer des contrôles depuis la boîte à outils sur le
formulaire pour créer l’interface utilisateur d’une fenêtre utilisée dans votre
application.
Le formulaire par défaut contient le nombre minimal d’éléments utilisés
par la plupart des formulaires : une barre de titre, une zone de contrôles et
les boutons Agrandir, Réduire et Fermer.
§
Pour
afficher un formulaire en mode Design
1
Dans
l’Explorateur de solutions, double-cliquez sur le formulaire.
Ou
2
Dans
l’Explorateur de solutions, sélectionnez le formulaire et cliquez sur le bouton
Concepteur de vues dans la barre d’outils.
§
Editeur
de code
Visual Studio .NET fournit un éditeur de code dans lequel vous pouvez
écrire et gérer du code pour votre projet. Vous pouvez associer du code
directement à un formulaire dans votre projet ou le placer dans un module de
code séparé. Un éditeur de code distinct s’affiche pour chaque formulaire ou
module du projet, ce qui facilite l’organisation, l’affichage et le déplacement
dans le code.
L’éditeur de code contient deux listes déroulantes situées en haut de la
fenêtre :
o La liste Nom de la classe sur la gauche et
la liste Nom de la méthode sur la droite.
o La liste Nom de la classe contient tous les
contrôles du formulaire correspondant. Si vous sélectionnez un nom de contrôle
dans cette liste, la liste Nom de la méthode affiche tous les événements
qui existent pour ce contrôle.
(Les
événements sont les actions que le contrôle effectue et qui sont interprétées
par l’application.) En utilisant parallèlement les listes Nom de la classe et
Nom de la méthode, vous pouvez localiser et éditer rapidement du code
dans votre application.
§
Pour
ouvrir l’éditeur de code pour un formulaire
1. Dans l’Explorateur de solutions, cliquez sur
le formulaire dont vous voulez visualiser le code.
2. Dans la barre d’outils Explorateur de
solutions, cliquez sur le bouton Afficher le code.
- ou -
Dans le menu Affichage, cliquez sur Code.
3. Règles de réalisation des interfaces
3.1. Les principaux objets d’une interface graphique
Les
principaux objets d’une interface graphique sont regroupés en ce qu’on appelle
des contrôles graphiques eux même organisées en plusieurs catégories parmi
lesquelles :
§ Les
contrôles de base : zone de texte, menus, barre d’outils
§ Les
contrôles de défilement
§ Les
contrôles de dialogue : fenêtre de recherche de fichier, sauvegarde et
récupération,…
3.1.1 Création d’une interface utilisateur
Lorsque vous créez une application, la première étape consiste à créer
l’interface utilisateur. Dans Visual Basic .NET, il est possible de créer
rapidement cette interface utilisateur en ajoutant dans un formulaire des
contrôles qui se trouvent dans la boîte à outils.
ü Pour ajouter des contrôles à un formulaire
1. Si la boîte à outils n’est pas ouverte, dans
le menu Affichage, cliquez sur Boîte à outils.
2. Dans la boîte à outils, cliquez sur le contrôle
à ajouter au formulaire et faites-le glisser vers l’emplacement de votre choix
dans le formulaire.
ü
Pour
déplacer et redimensionner des contrôles
1. Pour déplacer un contrôle, sélectionnez-le et
faites-le glisser vers l’emplacement de votre choix dans le formulaire.
2. Pour redimensionner un contrôle,
sélectionnez-le et faites glisser l’une des poignées de redimensionnement
jusqu’à ce que le contrôle ait atteint la taille désirée, puis relâchez le
bouton de la souris.
3.1.2 Définition des propriétés des contrôles
Les propriétés des objets se modifient en sélectionnant les objets
voulus sur le formulaire et en changeant leurs valeurs dans la fenêtre Propriétés.
ü
Pour
définir les propriétés dans la fenêtre Propriétés
1. Si la fenêtre Propriétés
n’est pas ouverte, dans le menu Affichage, cliquez sur Fenêtre
Propriétés.
2. Cliquez sur le contrôle pour lequel définir
une propriété.
3. Dans la fenêtre Propriétés,
sélectionnez la propriété et affectez-lui la valeur souhaitée.
3.1.3 Ajout de code pour les contrôles
Après avoir défini les propriétés initiales des objets de l’interface
utilisateur, vous pouvez ajouter du code qui s’exécute en réponse à certains
événements.
Les événements se produisent lorsque différentes actions sont
enregistrées pour un contrôle ou un objet. Par exemple, l’événement Click d’un
bouton se produit lorsqu’un utilisateur clique sur le bouton à l’aide d’une
souris.
Chapitre
3 :
Éléments de base de la programmation événementielle
1. Eléments de base de la programmation événementielle
1.1 Propriétés, méthodes et événements
Les classes décrivent les propriétés, les méthodes et les événements qui
constituent les objets, membres de la classe. Pour contrôler un objet, vous utilisez
des propriétés, des méthodes et des événements.
Les propriétés sont les caractéristiques d’un objet telles que
taille, couleur et texte. Les méthodes sont les actions qu’un objet peut
accomplir. Close et Hide sont des exemples de méthode très
courants pour un formulaire.
Les événements sont des actions, très souvent générées par un
utilisateur, qui sont reconnues par un objet, par exemple : activation d’une
touche, clic sur un bouton ou mouvement de la souris. Chaque
formulaire ou contrôle dispose d’un ensemble d’événements particulier qu’il
reconnaît. Les événements sont déclenchés lorsque certains aspects de l’objet
changent. Par exemple, lorsqu’un utilisateur clique sur une souris, l’événement
Click se déclenche.
Prenons l’exemple d’un poste de radio stéréo.
1.2 Création d’un formulaire
Dans Visual C#, un formulaire est une fenêtre utilisée dans votre
application. Lorsque vous créez un nouveau projet d’application Windows, Visual
C# vous fournit une fenêtre de conception où figure un formulaire. Le
formulaire par défaut contient les éléments minimums utilisés dans la plupart
des formulaires : une barre de titre, une case système et des boutons Réduire,
Agrandir et Fermer.
Les applications requièrent généralement plusieurs fenêtres. Il faut
ajouter un formulaire à votre projet pour chaque fenêtre que réclame votre
application.
ü
Pour
ajouter des formulaires à votre projet
1. Si
l’Explorateur de solutions n’est pas ouvert, dans le menu Affichage,
cliquez sur Explorateur de solutions.
2. Dans
l’Explorateur de solutions, cliquez avec le bouton droit sur le nom du projet,
pointez sur Ajouter et cliquez sur Ajouter un formulaire Windows.
3. Dans la
boîte de dialogue Ajouter un nouvel élément, donnez un nom approprié au
formulaire, puis cliquez sur Ouvrir.
1.3 Définir les propriétés d’un formulaire
Lors de la création de l’interface utilisateur d’une application Visual C#,
vous devez définir les propriétés des objets que vous créez.
Vous pouvez définir les propriétés de formulaire soit en écrivant du
code, soit en utilisant la fenêtre Propriétés. Tous les paramètres définis
au moment de la conception-lorsque vous créez l’application-servent de
paramètres initiaux à chaque nouvelle exécution de votre application.
ü
Pour
définir les propriétés de formulaire lors de la conception.
1. Si la fenêtre Propriétés
n’est pas ouverte, dans le menu Affichage, cliquez sur Fenêtre
Propriétés.
2. Dans la vue Conception,
cliquez sur le formulaire dont vous voulez définir une propriété. Le nom du
formulaire apparaît dans la liste déroulante Objet en haut de la fenêtre Propriétés.
3. Utilisez
les boutons Alphabétique et Par catégorie de la fenêtre Propriétés
pour afficher les propriétés du formulaire dans l’ordre alphabétique ou par
catégorie.
4. Dans la fenêtre Propriétés,
cliquez sur la propriété que vous souhaitez définir. Lorsque vous cliquez sur
une propriété, sa description s’affiche au bas de la fenêtre Propriétés,
dans le volet Description.
5. Tapez ou
sélectionnez la valeur que vous voulez donner à la propriété.
6. Pour voir
l’impact du nouveau paramètre sur le formulaire, vous pouvez exécuter votre
application en cliquant sur le bouton Démarrer dans la barre d’outils
standard.
ü
Pour
modifier l’objet de démarrage de votre projet
1. Si
l’Explorateur de solutions n’est pas ouvert, dans le menu Affichage,
cliquez sur Explorateur de solutions.
2. Dans
l’Explorateur de solutions, cliquez avec le bouton droit sur le nom du projet,
puis cliquez sur Propriétés.
3. Dans la zone Objet de
démarrage, cliquez sur le nouvel objet de démarrage de votre projet.
2. Contrôles de base
Lors
de la création de vos applications Windows Forms, vous allez
disposer vos contrôles sur ce qu'on appelle une Form. Des contrôles
sont en fait des éléments tels que des boutons, des zones de texte, des menus
déroulants,... Tous ces contrôles vont devoir être placés sur une fenêtre qui
va permettre de présenter l'application.
Une
propriété est définie par un nom et une valeur. Chaque propriété va permettre
de définir un comportement, une apparence... d'un contrôle. Par exemple, pour
la form, nous avons une propriété qui va définir le texte affiché
dans la barre de titre de celle-ci. Nous allons maintenant voir les principales
propriétés d'une Windows Form.
La
figure ci-dessous présente les différentes propriétés d’une Form :
Nous
allons maintenant voir les propriétés les plus importantes de la fenêtre. La
première de celle-ci est commune à tous les contrôles, c'est la propriété Name.
Celle-ci va permettre de nommer notre fenêtre pour pouvoir l'utiliser dans le
code.
Vous
pouvez également modifier la couleur d'arrière-plan de la fenêtre en modifiant
la propriété BackColor. Vous avez plusieurs choix pour ce qui est
de cette couleur. Vous pouvez simplement choisir une couleur dans la
partie Custom, ou alors choisir les couleurs définies comme
couleurs systèmes. Ainsi, vous pouvez dire que la fenêtre aura comme couleur
d'arrière plan celle définie pour les boutons, ou pour le texte,...
Vous pouvez également changer l'apparence du curseur de la
souris lorsque celui-ci se trouve sur votre form en modifiant
la propriété Cursor. Il est aussi possible de modifier la police
des textes affichés dans votre fenêtre. Pour cela, il suffit de modifier la
propriété Font en choisissant l'épaisseur, le style, la taille
et la police souhaitée.
La propriété FormBorderStyle, quant à elle, va
permettre de définir le format des bordures de la fenêtre. Si vous laissez
cette propriété sur Sizabel, votre fenêtre pourra être
redimensionnée par l'utilisateur. FixedSingle vous permet d'empêcher
ce redimensionnement. Vous pouvez également choisir None pour
cacher complètement la barre de titre.
Vous pouvez également cacher le bouton de maximisation de la fenêtre en allouant False à la propriété MaximizeBox et/ou le bouton de minimisation grâce à la propriété MinimizeBox. Vous pouvez aussi ne pas afficher la fenêtre dans votre barre des tâches en définissant la propriété ShowInTaskBar à False.
Vous pouvez également cacher le bouton de maximisation de la fenêtre en allouant False à la propriété MaximizeBox et/ou le bouton de minimisation grâce à la propriété MinimizeBox. Vous pouvez aussi ne pas afficher la fenêtre dans votre barre des tâches en définissant la propriété ShowInTaskBar à False.
Une propriété intéressante est StartPosition.
Celle-ci permet d'indiquer à quel endroit de votre écran votre fenêtre s'affichera
lorsque celle-ci apparaîtra. Par exemple, la valeur CenterScreen permet
de centrer la fenêtre au milieu de l'écran alors que la valeur CenterParent permet
de centrer la fenêtre par rapport à sa fenêtre parent.
La propriété Text va permettre de définir le
texte apparaissant dans la barre de titre de votre fenêtre et enfin, la
propriétéWindowState permet de définir si votre application démarre
avec la fenêtre maximisée (Maximized), minimisée (Minimized) ou
normal (Normal).
2.1 Composant Label
2.2 Composant TextBox
2.3 Composant Button
Les Listes
1. Le contrôle ListView :
De plus en plus puissant, le contrôle ListView permet d’afficher des
listes multi colonnes, ou des listes avec icône ou case à cocher.
1.1 Liste avec sous éléments.
Ajouter un ListView nommé ListBox.
En mode conception (création) : La propriété View permet de
déterminer l’aspect général du contrôle, elle peut prendre les valeurs :
§ Details : permet une liste avec sous éléments
et titre de colonnes.
§ Liste utilise un ascenseur horizontal.
§ LargeIcon
§ SmallIcone
En mode programmation cela donne : ListBox.View=
View.Details
Utilisons le mode détails (Appelé mode Rapport)
Exemple : Faire un tableau de 3 colonnes, mettre les nombres de 1 à 100
dans la première, leur carré dans la seconde, leur cube dans la troisième.
1.2 Comment remplir les en-têtes de colonnes?
En mode conception, dans la fenêtre propriété du ListView, il y a une
propriété Columns, le fait de cliquer sur le bouton d’expansion (…) ouvre une
fenêtre, cliquer sur ‘Ajouter’ permet d’ajouter une colonne ; la propriété
Text permet de donner un libellé qui apparaîtra en haut de la colonne. On peut
ainsi nommer les 3 colonnes (« Nombre », « Carré »,
« Cube » dans notre exemple)
Par programmation on peut aussi créer des colonnes en utilisant par
exemple le code suivant; cela donne:
listView1.Columns.Add("Nombre",100,HorizontalAlignment.Center);
listView1.Columns.Add("Carré",
100, HorizontalAlignment.Center);
listView1.Columns.Add("Cube",
100, HorizontalAlignment.Center);
Une autre manière est de créer une colonne et de l'ajouter:
ColumnHeader Nombre = new
ColumnHeader();
Nombre.Text
= "Nombre";
Nombre.TextAlign = HorizontalAlignment.Center;
Nombre.Width = 60;
ColumnHeader Carre = new ColumnHeader();
Carre.Text = "Carré";
Carre.TextAlign = HorizontalAlignment.Center;
Carre.Width = 60;
ColumnHeader
Cube = new ColumnHeader();
Cube.Text = "Cube";
Cube.TextAlign = HorizontalAlignment.Center;
Cube.Width = 60;
listView1.Columns.Add(Nombre);
listView1.Columns.Add(Carre);
listView1.Columns.Add(Cube);
1.3 Comment remplir le tableau?
Pour remplir le tableau, on pourrait, sur la ligne Items de la fenêtre
des propriétés, cliquer sur … et rentrer les valeurs ‘à la main’. Ou bien On le fait le plus souvent par
programmation:
Pour chaque ligne il faut créer un objet ListViewItem: sa propriété Text
contient le texte de la première cellule. On ajoute à cet objet des SubItems
qui correspondent aux cellules suivantes. Enfin on ajoute le
ListViewItem au contrôle ListView :
for
(int i = 1; i <= 100; i++){
ListViewItem nb = new ListViewItem();
nb.Text = i.ToString(); // première cellule
nb.SubItems.Add((i * i).ToString()); // deuxième cellule
nb.SubItems.Add((i * i * i).ToString()); // troisième cellule
listView1.Items.Add(nb); } //Ajout
de la ligne
Autre manière: on veut
créer un tableau pour gérer les stagiaires de la filière TDI1A. Pour cela on
doit créer une listView après on spécifie les colonnes de la table stagiaires
par les attributs (Matricule, Nom, Prénom).
listView2.View = View.Details;
listView2.Columns.Add("Matricule", 100, HorizontalAlignment.Left);
listView2.Columns.Add("Nom", 100, HorizontalAlignment.Left);
listView2.Columns.Add("Prénom", 100, HorizontalAlignment.Left);
Puis on rajoute les enregistrements de la table
avec le code ci-dessus
ListViewItem mat = new ListViewItem("70911");
ListViewItem.ListViewSubItem
nom = new
ListViewItem.ListViewSubItem(mat,
"ALAOUI");
mat.SubItems.Add(nom);
ListViewItem.ListViewSubItem
prenom = new ListViewItem.ListViewSubItem(mat, "SAID");
mat.SubItems.Add(prenom);
listView2.Items.Add(mat);
ou bien de manière plus simple:
ListViewItem stag = new ListViewItem();
stag.Text = "234511";
stag.SubItems.Add("KAMALI");
stag.SubItems.Add("Rachida");
listView2.Items.Add(stag);
Résultat :
1.4 Comment relire une cellule, récrire dans une cellule?
Voyons d'abord comment
on peut localiser une cellule:
|
|
|
ListBox.Items[0].SubItems[0].Text
|
ListBox.Items[0].SubItems[1].Text
|
ListBox.Items[0].SubItems[2].Text
|
ListBox.Items[1].SubItems[0].Text
|
ListBox.Items[1].SubItems[1].Text
|
ListBox.Items[1].SubItems[2].Text
|
…
|
…
|
…
|
Les lignes sont contenues dans la collection Items : La première
ligne est ListBox.Items[0], la seconde ligne: ListBox.Items[1]...
Les cellules sont contenues dans la collection Items[].SubItems :
La première cellule est ListBox.Items[0].SubItems[0] ou ListBox.Items[0].Text
, la seconde ListBox.Items[0].SubItems[1].
§ Pour lire le texte de la seconde ligne seconde
colonne et l’afficher dans une zone de texte :
TextBox1.Text = ListBox.Items[1].SubItems[1].
§ Pour écrire dans une cellule: ListBox.Items[1].SubItems[1]Text =
"88"
1.5 Comment intercepter le numéro de la ligne qui a été cliquée par l’utilisateur (et l’afficher)?
private void
listView2_SelectedIndexChanged(object sender, EventArgs e)
{
label1.Text =
listView2.SelectedIndices[0].ToString();
}
§ Si la propriété MultiSelect
est à False il y a, bien sur, une seule ligne sélectionnée, sinon les lignes
sélectionnées sont dans la collection SelectedIndices().
§ Si on veut récupérer le texte de la ligne
sélectionnée, il faut utiliser : listView2.SelectedItems[0]
§ Si la propriété GridLine est à True, des lignes
matérialisant les cases apparaissent.
§ Si la propriété CheckedBox
est à True, des cases à cocher apparaissent.
listView2.LabelEdit = True autorise la modification d'une
cellule de la première colonne (pour modifier, il faut cliquer une fois
(sélection) puis une seconde fois (modification). Pour les colonnes suivantes,
il n'y a pas d'édit.
1.6 Supprimer une ligne cliquée par l’utilisateur :
Pour supprimer une colonne sélectionnée par
l’utilisateur, on utilise la propriété Remove()
listView2.Items.Remove(listView2.SelectedItems[0]) ;
Si la propriété CheckedBox est à True, on utilise
le code suivant :
listView2.Items.Remove(listView2.CheckedItems[0]);
Les conteneurs
1. Définir la notion de conteneur
Le container représente un objet visuel
particulier dont l’objectif est de pouvoir contenir d’autres objets visuels. On
peut regrouper des contrôles dans les catégories suivantes:
§ Les GroupBox.
§ Les Panels.
§ Les PictureBox.
§ Les TabControl.
§ Les SplitContainer.
§ Les LayoutPanel.
2. Présenter les principes de placement des contrôles
2.1 GroupBox et Panel
Il est possible de regrouper des contrôles dans un container, on
peut par exemple regrouper plusieurs RadioButton. Le container peut être un GroupBox
ou un Panel.
GroupBox Panel avec AutoScroll = True et BorderStyle=Single
Pour l'utilisateur,
le fait que toutes les options soient regroupées dans un panneau est un indice
visuel logique (Tous les RadioButton
permettrons un choix dans une même catégorie de données). Au moment de
la conception, tous les contrôles peuvent être déplacés facilement ; si
vous déplacez le contrôle GroupBox ou Panel, tous les contrôles qu'il contient sont également déplacés. Les contrôles
regroupés dans un panneau ou un GroupBox sont accessibles au moyen de la propriété Controls
du panneau.
Le contrôle Panel est similaire au contrôle GroupBox ;
mais, seul le contrôle Panel peut disposer de barres de défilement et seul le
contrôle GroupBox peut afficher une légende ou bien un titre.
La légende de la GroupBox est définie par la propriété Text.
Pour faire apparaître les barres de défilement dans le Pannel
mettre
§ AutoScroll =True
§ AutoScrollMinSize =100;100
Dans un Panel, pour afficher des barres de défilement, attribuez à la
propriété AutoScroll la valeur True. La propriété BorderStyle détermine si
la zone est entourée d'une bordure invisible (None), d'une simple ligne
(FixedSingle) ou d'une ligne ombrée (Fixed3D).
Comment
créer un contrôle Panel ?
Faites glisser un contrôle Panel de l'onglet
Windows Forms de la boîte à outils jusqu'à
un formulaire. Ajoutez des contrôles au panneau en les déposant dans le
panneau. Si vous voulez mettre dans le panneau des contrôles existants,
sélectionnez-les tous, coupez-les dans le Presse-papiers, sélectionnez le
contrôle Panel et collez-les.
2.2 PictureBox
Le contrôle PictureBox peut afficher une image mais peut aussi servir de
conteneur à d'autres contrôles. Retenons
la notion de conteneur qui est le contrôle parent.
2.3 TabControl
Ce contrôle permet de créer des onglets comme dans un classeur, onglets
entièrement gérés par C#. Chaque page peut contenir d'autres
contrôles.
En mode conception, en passant par la propriété TabPages, on ajoute des
onglets dont la propriété Text contient le texte à afficher en haut (Ici: Page
1..). Il suffit ensuite de cliquer sur chaque onglet et d'y
ajouter les contrôles.
En mode run les onglets
fonctionnent automatiquement: cliquez sur Page 2 affiche la page correspondante
(et déclenche l'événement Click de
cet objet TabPage).
La propriété Alignement permet de mettre les onglets en haut, en bas, à
droite, à gauche.
2.4 SplitContainer
Permettant de créer facilement une séparation déplaçable entre 2 zones.
On met le SplitContainer, dans les 2 zones on met par exemple 2 textbox.
Il faut mettre la propriété Dock de ces 2 textbox à Fill. En mode Run, cela
marche : si je déplace la zone de séparation centrale, cela agrandit un textbox
et diminue le second.
§ Margin indique la largeur de la séparation.
§ Orientation permet une séparation horizontale ou verticale.
2.5 LayoutPanel
Permettent de positionner les contrôles dans une Form en mode
conception. On ne les voit pas en mode Run.
FlowLayoutPanel: Place les contrôles à droite du précédent, passe 'à la ligne'
si nécessaire, c'est génial pour
créer plusieurs lignes de label, TextBox, Bouton:
TableLayoutPanel: On crée un tableau de panel, puis on met les contrôles
dans les cellules:
2.6 Groupes de contrôles en VB .Net
Exemple: 3 cases à cocher permettent de colorer un label en vert rouge
ou bleu. Comment gérer les évènements?
On peut écrire 3 routines complètes pour chaque case à cocher. Il est
aussi toujours possible dans chacune des 3 procédures CouleurX.checkedChanged
de vérifier si la case est cochée et de modifier la couleur.
C'est plus élégant d'avoir une procédure unique qui, en fonction de la
case à cocher qui a déclenché l'évènement,
change la couleur.
On désire donc parfois que l'évènement
de plusieurs contrôles différents soit dirigé sur une seule et même procédure.
Exemple : Si j'ai une interface utilisateur avec 20 Textbox,
comment modifier la couleur de fond des 20 Textbox?
(En VB6 on créait un groupe de contrôle, cela n'existe plus en VB.net!!)
Solution 1
TextBox1.BackColor=
Color.Red
TextBox2.BackColor=
Color.Red
TextBox3.BackColor= Color.Red
..... !!!!!! Fastidieux
Solution 2
Mettre
les 20 TextBox dans un Panel (invisible); la collection Controls du Panel contient tous les contrôles contenus dans le panel, on utilise cette collection
pour atteindre tous les textbox:
private void
button1_Click(object sender, EventArgs e){
int i;
for (i = 0; i <
groupBox1.Controls.Count; i++)
groupBox1.Controls[i].BackColor
= Color.Red;
}
Ou
private void
button2_Click(object sender, EventArgs e){
int i;
foreach (TextBox txt in
groupBox1.Controls)
txt.BackColor = Color.Red;
}
S'il n'y a pas que des TextBox dans le Panel et
qu'on ne veut modifier que les TextBox:
private void
button2_Click(object sender, EventArgs e){
int i;
foreach (Control ctrl in
groupBox1.Controls)
{
if (ctrl.GetType() ==
typeof(TextBox))
ctrl.BackColor = Color.Red;
}
}
Utiliser les barres d’états et barre d’outils, les menus principaux et contextuels
1. Introduction :
Les menus, les barres d’état et les barres d’outils permettent d’offrir
des fonctionnalités aux utilisateurs ou de leur donner des informations
importantes dans votre application. Les menus contiennent des commandes,
regroupées selon un thème commun. Les barres d’état indiquent l’état de
l’application ou fournissent des informations à propos de l’entité de
l’application qui a le focus, comme une commande de menu. Les barres d’outils
utilisent des boutons destinés à faciliter l’accès aux commandes fréquemment
utilisées.
2. Création de menus
Si vous voulez que votre application fournisse diverses commandes aux
utilisateurs, les menus constituent un moyen pratique et cohérent de
regroupement des commandes, permettant un accès facile. En outre, vous pouvez
utiliser les touches d’accès rapide et les touches de raccourci afin de rendre
la navigation dans les menus plus aisée pour les utilisateurs expérimentés de
votre application.
Ce chapitre décrit comment créer des menus en vue de fournir un ensemble
groupé de commandes aux utilisateurs.
Ce chapitre
inclut les rubriques et activités ci-dessous :
§ Présentation multimédia: Création de menus
§ Terminologie des menus
§ Principes de création des menus
§ Création d’un menu
§ Modification des éléments de menu
§ Amélioration de votre menu
§ Application pratique : Création d’un menu
3. Terminologie des menus
Un système de menu se compose généralement de plusieurs éléments. Le
tableau ci-dessous décrit les éléments de menu d’une interface utilisateur
classique, telle que celles utilisées par les applications Windows
4. Principes de création de menus
L’objectif d’un menu est de rendre l’utilisation de votre application
simple et intuitive. Les principes standards ci-dessous relatifs à la création
des éléments de menu vous aideront à rendre votre menu plus intuitif et plus
utile.
Le tableau suivant indique les principes de création des menus :
5. Création d’un menu
Vous pouvez créer un menu dans un Windows Form en ajoutant un contrôle MainMenu
au formulaire, au moment du design, à partir de la boîte à outils.
Vous pouvez ensuite créer les éléments de menu et sous-menus de votre
menu à l’aide du Concepteur de menus. Lorsque la structure de votre menu a été
créée, vous pouvez ajouter des fonctionnalités aux éléments de menu.
5.1 Pour ajouter un menu et des éléments de menu à un
formulaire
1.
Dans le
Concepteur Windows Forms, ouvrez le formulaire auquel vous souhaitez ajouter un
menu.
2.
Dans la boîte
à outils, double-cliquez sur le contrôle MainMenu. Un menu est ajouté au
formulaire. Le menu affiche le texte « Tapez ici. »
3.
Cliquez sur
le texte Tapez ici, puis tapez le nom de l’élément de menu souhaité afin
de l’ajouter au menu.
4.
Le nom que
vous tapez apparaît en tant que propriété Text de l’élément de menu. Par
défaut, le contrôle MainMenu ne contient pas d’éléments de menu, de
telle sorte que le premier élément de menu ajouté au menu devient l’en-tête du
menu.
5.
Pour ajouter
un autre élément de menu, cliquez sur une autre zone Tapez ici dans le
Concepteur de menus.
a.
Cliquez sur
la zone à droite de l’élément de menu actuel pour ajouter un sous-menu. Vous ne
pouvez pas ajouter un sous-menu à un en-tête de menu.
b.
Cliquez sur
la zone en dessous de l’élément de menu actuel pour ajouter un autre élément au
même menu
L’ajout de code à l’événement Click de l’élément de menu permet
d’ajouter des fonctionnalités aux éléments de menu. L’événement Click se
produit lorsqu’un utilisateur clique sur l’élément de menu, lorsqu’un
utilisateur sélectionne l’élément à l’aide du clavier et appuie sur ENTRÉE, ou
lorsqu’un utilisateur clique sur une touche d’accès rapide ou une touche de
raccourci associée à l’élément de menu.
5.2 Pour ajouter une fonctionnalité à l’élément de menu
1.
Dans le
Concepteur de menus, cliquez sur l’élément de menu auquel vous voulez ajouter
une fonctionnalité.
2.
Dans la fenêtre Propriétés,
modifiez la propriété Name
de l’élément. Renommez l’élément. Utilisez la même convention d’affectation
de noms pour tous les éléments du menu. (Par
exemple, affectez l’élément de menu Open du nom OpenItem.)
3.
Double-cliquez
sur l’élément de menu pour ouvrir l’événement Click d’un gestionnaire
d’événements.
4.
Écrivez le
code pour le gestionnaire d’événements.
6. Modification des éléments d’un menu
Après avoir créé votre menu, vous pouvez aisément le modifier en
déplaçant, en supprimant, en éditant, en désactivant ou en masquant des
éléments.
1.1 Pour déplacer un élément de menu
Dans le Concepteur de menus, cliquez sur l’élément de menu et
déplacez-le vers son nouvel emplacement. Vous pouvez placer l’élément au sommet
du menu ou entre d’autres éléments de menu, ou l’ajouter en tant que nouveau
sous-menu d’un élément existant.
1.2 Pour supprimer un élément de menu
Dans le Concepteur de menus, cliquez avec le bouton droit sur l’élément
de menu, puis cliquez sur Supprimer. La propriété Text de
l’élément de menu définit le nom qui sera visible par les utilisateurs. Lorsque
vous utilisez le Concepteur de menus, vous définissez la propriété Text pour
chaque élément à l’occasion de la création des éléments de menu.
1.3 Pour modifier la propriété Text d’un élément de menu
Dans le Concepteur de menus, cliquez sur l’élément de menu pour
sélectionner le nom, puis tapez le nouveau nom.
La propriété Name de chaque élément est définie dynamiquement par
le Concepteur de menus. Le Concepteur de menus utilise le système d’affectation
de noms MenuItemX, où X est un nombre représentant l’ordre dans
lequel l’élément de menu a été créé. Le Concepteur de menus de Microsoft Visual
Studio® contient un Éditeur de noms permettant de modifier la propriété Name
des éléments de menu que vous créez
1.4 Pour modifier la propriété Name des éléments de menu à l’aide de l’Éditeur de noms
1. Cliquez avec le bouton droit n’importe où dans le
Concepteur de menus, puis cliquez sur Modifier les noms. Le Concepteur
de menus passe en mode d’édition de noms, et le nom d’un élément de menu
apparaît à côté du texte spécifié dans la propriété Text.
2. Modifiez la propriété Name à la valeur
souhaitée.
3. Pour quitter le mode d’édition de noms, cliquez
avec le bouton droit n’importe où dans le Concepteur de menus, puis cliquez à
nouveau sur Modifier les noms.
Les éléments de menu sont activés par défaut lors de leur création. La
désactivation des éléments de menu en réponse à l’activité de l’utilisateur est
un moyen de limiter le nombre de commandes accessibles. Pour désactiver un
élément de menu, utilisez la propriété Enabled de l’élément de menu.
1.5 Pour désactiver un élément de menu
1. Dans le Concepteur de menus, cliquez sur l’élément
de menu que vous voulez désactiver.
2. Dans la fenêtre Propriétés, définissez la propriété Enabled
à la valeur False.
Vous pouvez désactiver un élément de menu au moment de
l’exécution à l’aide du code suivant, où MenuItem1 est le nom de l’élément de
menu que vous voulez désactiver :
MenuItem1.Enabled = False
Le masquage des éléments de menu est un moyen permettant de contrôler
l’interface utilisateur de votre application et de limiter les commandes
accessibles. Souvent, vous voudrez masquer la totalité d’un menu lorsque tous
les éléments de ce menu sont inaccessibles. Cela a l’avantage de limiter au
maximum les distractions des utilisateurs.
Notez qu’il est important à la fois de masquer et de désactiver le menu,
car le masquage seul du menu n’empêche pas d’accéder à une commande de ce menu
par le biais d’une touche de raccourci.
1.6 Pour masquer un élément de menu
1. Dans le Concepteur de menus, cliquez sur l’élément
de menu que vous voulez masque.
7. Améliorer votre menu
Vous pouvez ajouter quatre types d’amélioration à un menu afin de
fournir plus d’informations aux utilisateurs :
§ Les coches indiquent si une fonctionnalité
est activée ou désactivée (par exemple si une règle est affichée le long de la
marge d’une application de traitement de texte) ou indiquent lequel des
fichiers d’une liste est affiché (comme dans un menu Fenêtre).
§ Les touches de raccourci sont des commandes
clavier utilisées pour accéder aux éléments de menu au sein d’une application.
§ Les touches d’accès rapide permettent de
naviguer dans les menus à l’aide du clavier. Pour activer le menu ou l’élément
de menu souhaité, appuyez sur ALT et sur la touche d’accès rapide soulignée.
§ Les barres séparatrices permettent de
grouper les commandes apparentées d’un menu et de rendre celui-ci plus lisible.
7.1 Pour ajouter une coche à un élément de menu
Dans le Concepteur de menus, cliquez sur l’élément de menu, puis cliquez
sur la zone à gauche de l’élément de menu. Une coche apparaît, indiquant que la propriété Checked
a été définie sur True.
Ou :
1. Dans le
Concepteur de menus, cliquez sur l’élément de menu.
2. Dans la
fenêtre Propriétés, définissez la propriété Checked à la valeur True.
La propriété RadioCheck fonctionne conjointement avec la
propriété Checked. Lorsque la propriété RadioCheck a la valeur True,
un petit point (.) est affiché à côté d’un élément de menu coché au lieu d’une
coche ().
7.2 Pour affecter une touche de raccourci à un élément de menu
1. Dans le
Concepteur de menus, cliquez sur l’élément de menu.
2. Dans la
fenêtre Propriétés, définissez la propriété Shortcut à l’une des valeurs
figurant dans la liste déroulante.
7.3 Pour affecter une touche d’accès rapide à un élément de menu
Lorsque vous définissez la propriété Text de l’élément de menu
(dans la fenêtre Propriétés, dans le Concepteur de menus ou à l’aide de code), tapez
une esperluette (&) devant la lettre que vous voulez désigner comme touche
d’accès rapide.
Par exemple, si vous tapez &Fichier pour la propriété Text
d’un élément de menu, celui-ci apparaîtra comme suit : « Fichier ». De
même, F&ormat provoquera l’apparition de l’élément de menu « Format
».
Pour accéder à un élément de menu, appuyez sur ALT pour placer le focus
sur la barre de menus et appuyez sur la touche d’accès rapide du nom du menu.
Lorsque le menu s’ouvre et affiche ses éléments ainsi que les touches d’accès
rapide, appuyez sur la touche d’accès rapide de l’élément de menu souhaité pour
l’activer.
7.4 Pour ajouter une barre séparatrice à un élément de menu
Dans le Concepteur de menus, cliquez avec le bouton droit à l’endroit où
vous voulez placer la barre séparatrice, puis cliquez sur Insérer un
séparateur.
Ou, lorsque vous définissez la propriété Text de l’élément de
menu (dans la fenêtre Propriétés, dans le Concepteur de menus ou à l’aide de
code), tapez un tiret (.) pour faire de cet élément de menu une barre
séparatrice
Realisation d une Application Gestion Stagiaire Telecharger Le pdf
Menu.pdf
------------------------------
Realisation d une Application Gestion Cyber Telecharger Le pdf
APPLICATION2.pdf ------------Solution Proposee
Realisation d une Application 3 Le pdf
APPLICATION 3.pdf ------------------------------
------------------------------
serie evnementiel(examen de 2012 )3 Le pdf
serie 1 Evenementiel.pdf ------------------------------
Resume de Cour Telecharger Le pdf
Cour Programmation evenementiel.pdf