Travailler avec les menus, les barres d’outils et les boîtes de dialogue
À la fin de ce chapitre, vous saurez :
■ Ajouter des menus à vos programmes à l’aide du contrôle MenuStrip
■ Traiter les sélections des menus et des barres d’outils à l’aide de procédures événementielles et de l’Éditeur de code
■ Ajouter des barres d’outils et des boutons à l’aide du contrôle ToolStrip
■ Utiliser les contrôles OpenFileDialog et ColorDialog pour créer des boîtes de dialogue standard
■ Ajouter des touches d’accès rapide et de raccourci aux menus
Dans le chapitre 3, « Travailler avec les contrôles de la Boîte à outils », vous avez utilisé plusieurs contrôles Microsoft Visual Studio 2008 pour recueillir des informations de la part de l’utilisateur pendant l’exécution d’un programme. Dans ce chapitre, vous allez apprendre à proposer des choix à l’utilisateur en créant des menus, des barres d’outils et des boîtes de dialogue de qualité professionnelle. Les menus sont placés dans la barre de menus, chaque menu contenant une liste de commandes. Une barre d’outils contient des boutons et d’autres outils utiles d’un programme. La plupart des commandes de menu et de barre d’outils s’exécutent dès que l’on clique dessus. Par exemple, lorsque l’utilisateur clique sur la commande Copier du menu Édition, l’information copiée est instantanément placée dans le Presse-papiers. En revanche, si une commande de menu est suivie de points de suspension (…), le fait de cliquer sur la commande affiche une boîte de dialogue demandant davantage d’informations avant d’effectuer la commande. De nombreux boutons de barres d’outils affichent également des boîtes de dialogue. Dans ce chapitre, vous allez apprendre à utiliser les contrôles MenuStrip et Toolstrip pour donner un aspect professionnel à l’interface utilisateur de votre application. Vous allez également apprendre à traiter les commandes de menus, les boutons de barres d’outils et les options des boîtes de dialogue.
Ajouter des menus à l’aide du contrôle MenuStrip
Le contrôle MenuStrip est un outil qui permet d’ajouter des menus à votre programme. Vous pouvez le personnaliser via les paramètres de propriétés de la fenêtre Propriétés. MenuStrip permet d’ajouter de nouveaux menus, de modifier et réorganiser des menus existants et d’effacer d’anciens menus. Vous pouvez également créer automatiquement une configuration de menu standard et améliorer vos menus avec des effets spéciaux, comme les touches d’accès rapide, les coches d’activation/désactivation et les raccourcis clavier. Les menus ressemblent en tout point à ceux des applications professionnelles Microsoft Windows, mais MenuStrip ne crée que la partie visible de vos menus et commandes. Il ne vous dispense pas d’écrire les procédures événementielles qui traitent les sélections des menus et assurent le fonctionnement des commandes. Dans l’exercice suivant, vous allez commencer ce traitement à l’aide du contrôle MenuStrip et créer un menu Horloge comportant des commandes pour afficher la date et l’heure en cours.
Créer un menu 1. Démarrez Visual Studio. 2. Dans le menu Fichier, cliquez sur Nouveau Projet. La boîte de dialogue Nouveau projet s’affiche. 3. Créez un nouveau projet Application Windows Forms appelé Mon Menu. 4. Dans l’onglet Menus et barres d’outils de la Boîte à outils, cliquez sur le contrôle MenuStrip, puis dessinez un contrôle de menu sur votre formulaire. Ne vous souciez pas de la position du contrôle. Visual Studio le déplace et le redimensionne automatiquement. Votre formulaire présente un résultat similaire à :
L’objet barre de menus n’apparaît pas sur votre formulaire, mais en dessous. Son fonctionnement diffère de celui de Visual Basic 6, qui affiche, d’une manière ou d’une autre, tous les objets dans le formulaire (y compris ceux qui n’ont pas de représentation visuelle lors de l’exécution du programme, comme le contrôle Timer). Toutefois, dans Visual Studio, les objets non visibles, comme les menus ou les horloges, figurent dans l’EDI dans une sous-fenêtre à part appelée zone des composants et vous pouvez les sélectionner, définir leurs propriétés ou les effacer depuis cette sous-fenêtre. Outre l’objet barre de menus dans la zone des composants, Visual Studio affiche une représentation visuelle du menu que vous avez créé en haut du formulaire. L’étiquette Tapez ici vous invite à cliquer sur l’étiquette et à saisir le titre de votre menu. Après avoir saisi le titre du premier menu, vous pouvez saisir les titres des sous-menus et les noms d’autres menus en appuyant sur les touches de direction et en tapant des noms supplémentaires. Mieux encore : vous pouvez revenir ultérieurement à ce Concepteur de menus en ligne et modifier votre travail ou ajouter d’autres éléments de menu (l’objet barre de menus est entièrement personnalisable et permet de créer une interface utilisateur digne des meilleures applications Windows). 5. Cliquez sur l’étiquette Tapez ici, tapez Horloge et appuyez sur ENTRÉE. Le mot « Horloge » est le nom de votre premier menu et deux autres étiquettes Tapez ici apparaissent pour vous permettre de créer les commandes du menu Horloge ou d’autres titres de menu. 6. Tapez Date afin de créer une commande Date dans le menu Horloge, puis appuyez sur ENTRÉE. Visual Studio ajoute la commande Date au menu et sélectionne l’élément suivant. 7. Tapez Heure afin de créer une commande Heure et appuyez sur ENTRÉE. Votre menu Horloge possède désormais deux commandes, Date et Heure. Vous pourriez ajouter d’autres menus ou commandes, mais ce n’est pas nécessaire pour cet exemple de programme. Votre formulaire présente un résultat similaire à :
8. Cliquez sur le formulaire pour fermer le Concepteur de menus. Le Concepteur de menus se ferme et votre formulaire s’ouvre dans l’EDI avec un nouveau menu Horloge. Vous êtes prêt à personnaliser le menu.
Ajouter des touches d’accès rapide aux commandes de menu
La plupart des applications permettent d’accéder aux commandes de menu et de les exécuter à l’aide du clavier. Par exemple, dans Visual Studio, vous pouvez ouvrir le menu Fichier en appuyant sur la touche ALT puis sur la touche F. Une fois le menu Fichier ouvert, vous pouvez ouvrir un projet en appuyant sur la touche P. Cette combinaison de touches sert à exécuter la commande correspondante du menu ouvert. Elle porte le nom de touche d’accès rapide. Vous pouvez identifier la touche d’accès rapide d’une commande de menu à son soulignement. Visual Studio permet de créer facilement ces touches d’accès rapide. Pour ce faire, activez le Concepteur de menus puis tapez une esperluette (&) avant la lettre choisie dans le nom de la commande. Lorsque vous cliquez sur la commande pendant l’exécution du programme, votre programme reconnaît automatiquement la touche d’accès rapide. Essayez maintenant d’ajouter des touches d’accès rapide au menu Horloge.
Conventions des menus Par convention, la première lettre de chaque nom de menu et de commande d’une application Windows est une majuscule. Les menus Fichier et Édition sont souvent les deux premiers de la barre de menus, et Aide est habituellement le dernier. Affichage, Format et Fenêtre sont d’autres menus courants. Peu importent les menus que vous utilisez dans vos applications, veillez seulement à être clair et cohérent. Menus et commandes doivent être simples d’utilisation et ressembler autant que possible à ceux des autres applications Windows. Lorsque vous créez des éléments de menu, suivez ces conseils :
■ Utilisez des légendes courtes, spécifiques, d’un ou deux mots maximum.
■ Assignez une touche d’accès rapide à chaque élément de menu. Utilisez si possible la première lettre de l’élément ou la touche d’accès rapide habituelle (comme Q pour Quitter).
■ Les éléments de menu de même niveau doivent avoir chacun une touche d’accès rapide.
■ Si une commande fonctionne en mode activation/désactivation, placez une coche à gauche de l’élément lorsqu’il est actif. Pour ce faire, ajoutez une coche dans la fenêtre Propriétés en réglant la propriété Checked de la commande de menu sur True.
■ Placez des points de suspension (…) après une commande de menu qui va nécessiter une saisie utilisateur pour être exécutée. Les points de suspension indiquent qu’une boîte de dialogue s’ouvrira lorsque l’utilisateur sélectionnera cet élément.
Essayons maintenant d’ajouter des touches d’accès rapide au menu Horloge.
Ajouter des touches d’accès rapide 1. Sur le formulaire, cliquez sur le nom de menu Horloge, attendez un moment, puis cliquez de nouveau dessus. Le nom du menu est mis en surbrillance et un pointeur en I clignotant (le curseur d’édition) apparaît à la fin de la sélection. À l’aide du pointeur en I, vous pouvez modifier le nom du menu ou ajouter l’esperluette (&) désignant la touche d’accès rapide. Si vous avez double-cliqué sur le nom du menu, l’Éditeur de code s’est peutêtre ouvert. Si tel est le cas, fermez-le et réitérez l’étape 1. 2. Appuyez cinq fois sur la flèche de direction gauche pour positionner la barre en I juste devant le nom du menu Horloge. La barre en I clignote devant la lettre H de Horloge. 3. Tapez & pour faire de la lettre H la touche d’accès rapide du menu Horloge. Dans la zone de texte, une esperluette apparaît avant le mot Horloge. 4. Dans le menu, cliquez une première fois sur la commande Date, puis une seconde fois pour faire apparaître la barre en I. 5. Tapez & devant la lettre D. La lettre D est désormais la touche d’accès rapide de la commande Date. 6. Dans le menu, cliquez une première fois sur la commande Heure, puis une seconde fois pour faire apparaître la barre en I. 7. Tapez & devant la lettre H. La lettre H est désormais la touche d’accès rapide de la commande Heure.
Remarque Par défaut, la plupart des versions de Windows n’affichent pas le soulignement des touches d’accès rapide dans un programme tant que vous n’avez pas appuyé sur la touche ALT. Avec Windows 2000, vous pouvez désactiver cette option à partir de l’icône Affichage du Panneau de configuration, dans l’onglet Effets. Avec Windows XP et Windows Server 2003, vous pouvez désactiver cette option depuis les Propriétés de Affichage du Panneau de configuration, dans l’onglet Apparence. Avec Windows Vista, vous le faites en cliquant dans le Panneau de configuration sur Apparence et personnalisation, puis en sélectionnant dans Options d’ergonomie l’option Souligner les raccourcis clavier et les touches d’accès rapide. Cochez ou décochez ensuite les options adéquates.