Visual Basic .Net:Menu

Un article de WikiTuto.

Jump to: navigation, search
  • VB .Net un langage objet
  1. Définition du langage Objet
  2. La syntaxe objet
  3. La programmation événementielle
  • L'interface de Visual Studio
  1. Structure des applications
  2. Prise en main
  • Premiers contrôles
  1. La classe Form
  2. La classe Button
  3. La classe Label
  4. La classe LinkLabel
  5. La classe Textbox
  6. La classe Richtextbox
  7. La classe Checkbox
  8. Les classes Radiobutton, GroupBox et Panel
  • Les bases du langage
  1. Les variables
  2. Les opérateurs
  3. Les tests
  4. Les boucles
  5. Les fonctions prédéfinies
    1. Fonctions de chaînes
    2. Fonctions et méthodes numériques
    3. Fonctions de conversion
    4. Fonctions d'interface
    5. Les espaces de noms
  • Les collections
  1. La notion de Collection
  2. Désigner les contrôles par leur indice
  3. La boucle For Each ... Next
  4. Tester le type d'un contrôle
  5. Créer ses propres collections par du code
  6. Créer dynamiquement des contrôles
  7. Remarque finale
  • Les contrôles listes
  1. La classe Listbox
  2. La classe Combobox
  3. La classe CheckedListBox
  4. La classe ImageList
  5. La classe Listview
  6. La classe Treeview
  • Les Événements
  1. La notion de Focus
  2. Les événements clavier
  3. Les événements Souris
  4. Glisser - Déposer
  • Autres contrôles
  1. La classe TabControl
  2. Les classes HScrollBar, VScrollBar et TrackBar
  3. La classe ProgressBar
  4. Les classes ToolTip et HelpProvider
  5. Les classes DomainUpDown et NumericUpDown
  6. Les classes DateTimePicker et MonthCalendar
  7. La classe Timer
  8. Les classes de boîtes de dialogue communes
  • Les graphismes
  1. Couleurs et Propriétés
  2. Images et Contrôles
  3. Gérer intelligemment les images
  4. méthodes graphiques
  • Les menus
Source : Christophe Darmangeat

Sommaire

Le concepteur de menus

Si l'on veut un ensemble de menus dans sa Form, il faut créer un objet (un seul) de la classe MainMenu, classe disponible sous forme de contrôle dans la boîte à outils. Bien sûr, on peut aussi ajouter un menu par du code, mais étant donné le peu de cas où cette procédure s'avère nécessaire, j'en passerai pudiquement les détails sous silence.

Une fois l'objet MainMenu posé sur la Form, le concepteur de menus permet, en cliquant sur ce MainMenu, d'entrer à l'intérieur toute la série des commandes dont on souhaitera disposer. C'est extrêmement facile et ergonomique, il suffit de cliquer à côté, ou en-dessous, de l'élément adéquat, pour pouvoir entrer d'autres éléments. Ce faisant, on crée des objets de la classe MenuItem. Ainsi, chaque objet MainMenu comprend un certain nombre d'objets de la classe MenuItem, c'est-à-dire d'éléments de menu.

A signaler que les menus sont organisés les uns par rapport aux autres sous la forme d'un emboîtement de collections : les menus principaux (typiquement : Fichier, Édition, Affichage, etc.) sont les MenuItems membres de la collection de l'objet MainMenu. De même, les menus "secondaires" comme Ouvrir, Enregistrer, Enregistrer sous, etc. seront membres de la collection du menu Fichier. Et ainsi de suite.

Propriétés des menus

  • Pour introduire une barre de séparation entre deux menus placés verticalement l'un sous l'autre, il suffit de créer un élément possédant comme propriété Text un simple tiret (celui du signe de la soustraction).
  • Pour créer une touche de raccourci (celle qui permettra, conjointement à Alt, de déclencher la commande en question), il suffira de placer le signe & avant la lettre concernée dans le texte du menu.
  • la propriété Checked, si elle vaut True, permet de faire figurer devant le menu un signe indiquant son activation. Si la propriété RadioChecked vaut également True, ce signe est un cercle plein.
  • les propriétés ShortCut et ShowShortCut permettent respectivement d'attribuer une combinaison de touches du clavier à un menu, et de les afficher à côté du menu en question.

Les événements liés aux menus

Il s'agit pour l'essentiel de l'événement Click, lorsqu'on parle d'une commande ordinaire.

Dans le cas d'un menu qui n'est rien censé déclencher, hormis l'apparition sur sa droite d'un sous-menu, on pourra utiliser si besoin l'événement PopUp.

Enfin, le simple fait qu'un élément soit en surbrillance, suite au passage de la souris ou du clavier, déclenche un événement Select.

Menus contextuels

Il s'agit du menu qui apparaît lors d'un clic droit de la souris, et dont le contenu varie selon l'endroit où se trouve le curseur. Pour qu'un, ou plusieurs contrôles disposent d'un menu contextuel, la procédure à suivre est très simple.

  • On commence par poser sur la Form autant de contrôles ContextMenu qu'on aura besoin de menus contextuels différents.
  • On édite chacun de ces menus, en y créant les différents éléments voulus, via la même interface que pour les MainMenu.
  • On affecte à chaque contrôle le ContextMenu qui lui revient par sa propriété... ContextMenu.

Évidemment, tout cela peut également être réalisé par des liges de code, mais là encore, nous passerons tout cela sous silence, l'intérêt en étant réservé aux spécialistes.

A noter qu'un ContextMenu génère un événement PopUp lorsqu'il apparaît, et que tout comme pour un menu ordinaire, le clic sur l'un de ses éléments provoque un événement... Click.

Exercices

Soyons clairs, l'exercice qui suit est une vacherie.

Pas tant à cause de la structure des menus, qui se construit facilement grâce au concepteur dont nous venons de parler. Mais le "branchement" de chaque élément de menu ainsi créé, même s'il peut laborieusement être fait à la main, devra être ici entièrement programmé.

Ce qui pose le problème de l'exploration des collections de menus, et des sous-collections dans les collections, et des sous-sous-collections dans les collections... autrement dit de la mise en oeuvre d'un traitement récursif pour balayer l'arborescence des menus.

C'est un peu difficile quand on n'a pas l'habitude, mais il y a certaines situations où il faut savoir comment employer cette technique. La preuve !

Exercice Exécutable Sources
Au tord-Boyaux [1][2]

Voir aussi

Source : Christophe Darmangeat

Boîte à outils
Annuaire gratuitCe site est listé dans la catégorie Informatique : Aide et astuces en informatique Annuaire