Les Menus Et Événements

download Les Menus Et Événements

of 28

description

Les menus et événements

Transcript of Les Menus Et Événements

  • 1 Les menus et vnements

    14/09/08

    Les menus et vnements

    Sommaire

    1 Introduction ..................................................................................................................................... 2

    2 Grer les ToolStrips ......................................................................................................................... 2

    2.1 Prsentation du ToolStrip ...................................................................................................... 2

    2.2 Ajouter des lments dans votre ToolStrip en utilisant linterface utilisateur ou le code de

    programmation ................................................................................................................................... 4

    2.3 Les diffrents lments composant le ToolStrip .................................................................... 6

    2.4 Grer les images dans un ToolStrip ........................................................................................ 7

    2.5 Le container ToolStripContainer ............................................................................................ 7

    2.6 La fusion de ToolStrip ............................................................................................................. 7

    3 Configurer et crer des menus ........................................................................................................ 8

    3.1 Prsentation du contrle MenuStrip ..................................................................................... 8

    3.2 Concevoir et grer des MenuStrips et des ToolStripMenuItem ........................................... 10

    3.3 Le contrle ContextMenuStrip ............................................................................................. 18

    4 Grer les vnements et utiliser le Event Handlers ...................................................................... 22

    4.1 Les vnements en gnral ................................................................................................. 22

    4.2 Crer un gestionnaire dvnements (Event Handlers) la conception ............................. 24

    4.3 Crer un vnement pour un contrle ................................................................................ 25

    4.4 Grer les vnements au clavier et la souris .................................................................... 25

    4.5 Charger des mthodes avec le Code Editor ......................................................................... 27

    5 Conclusion ..................................................................................................................................... 28

  • 2 Les menus et vnements

    14/09/08

    1 Introduction

    Dans ce quatrime chapitre, vous dcouvrirez deux contrles (ToolStrip et MenuStrip) qui

    savrent importants dans la cration dun programme en Windows Form. Vous apprendrez aussi

    grer les vnements et utiliser les Events Handler.

    Bon cours .Net

    Lquipe Windows Form

    2 Grer les ToolStrips

    2.1 Prsentation du ToolStrip

    Le ToolStrip est un nouveau contrle cr pour .NET Framework 2.0. Il permet de configurer

    facilement des ToolBars qui ont lapparence des barres doutils de Microsoft Internet Explorer ou

    encore Microsoft office et dallure professionnel. Il permet dutiliser les ToolStripItems (lments du

    contrle) qui fournissent une grande varit de fonctionnalit.

  • 3 Les menus et vnements

    14/09/08

    Voici les principales proprits dun ToolStrip :

    Types de Proprits Description

    AllowItemReorder Permet dindiquer si les Item peuvent tre

    rorganiss par lutilisateur. Si sa valeur est True

    lutilisateur peut dplacer les Item en

    maintenant la touche Alt.

    AllowMerge Permet dindiquer si votre ToolStrip peut se

    fusionner avec un autre ToolStrip.

    CanOverFlow Permet de dfinir si lutilisateur peut mettre des

    Item sous des menus droulant.

    Dock Permet dindiquer o est le ToolStrip. En effet il

    est mieux de mettre le ToolStrip sur un bord de

    votre Formulaire.

    IsDropDown Indique si le ToolStrip est un contrle

    ToolStripDropDown.

    LayoutStyle Permet de dfinir lemplacement des lments

    dans votre ToolStrip, par exemple les classer

    verticalement ou horizontalement.

    RenderMode Permet de dfinir un style visuel de design, par

    exemple, un style professionnel ou systme.

    ResizeRedraw Indique si le ToolStrip se redessine lors dun

    redimensionnement.

    ShowItemToolTips Permet de dfinir si les lments du ToolStrip

    peuvent afficher des infos bulle.

    Stretch Permet de dfinir si le ToolStrip prend toute la

    longueur du ToolStripContainer.

    TextDirection Permet dindiquer la direction du texte dans vos

    lments de votre ToolStrip. Par exemple, vous

    pouvez mettre votre texte verticalement.

    VScroll Dfinit une valeur pour quune barre de

    dfilement verticale saffiche.

  • 4 Les menus et vnements

    14/09/08

    2.2 Ajouter des lments dans votre ToolStrip en utilisant linterface utilisateur ou le code de programmation

    Au moment de la conception de votre ToolStrip, vous avez deux faons dajouter des lments :

    Soit en cliquant sur le petit onglet ToolStrip Tasks puis Edit Items :

    Soit directement avec un onglet qui saffiche lorsque que le ToolStrip est slectionn :

    Vous pouvez aussi ajouter ces lments directement dans le code, par exemple, vous pouvez ajouter

    un bouton Nouveau lment :

    VB

    Public Sub New()

    InitializeComponent()

    Dim nouveauElement As ToolStripItem

    nouveauElement = toolStripTest.Items.Add("Nouveau lment")

    End Sub

  • 5 Les menus et vnements

    14/09/08

    //C#

    public Form1()

    {

    InitializeComponent();

    ToolStripItem nouveauElement;

    nouveauElement = toolStripTest.Items.Add("Nouveau lment");

    }

    Ce qui donne :

    Remarque : Implmenter votre code dans la classe de votre Formulaire aprs

    InitializeComponent ( ) ; , afin que votre lment soit ajout dans votre contrle.

  • 6 Les menus et vnements

    14/09/08

    2.3 Les diffrents lments composant le ToolStrip

    Le ToolStrip a t cr dans le but daccueillir plusieurs lments dj existant hors ToolStrip

    comme par exemple des boutons. Certains contrles sont par contre spcifiques au ToolStrip. Voici

    les lments dun ToolStrip :

    Types dlments Description

    ToolStripLabel La particularit de cet lment est quil peut tre

    la fois un Label mais aussi un LinkLabel. Il suffit

    de changer la proprit de IsLink pour avoir lun

    des deux.

    ToolStripButton Il sagit dun bouton comme un Button normal. A

    la base il est juste reprsent par une image

    mais il est configurable. Vous pouvez associer

    une icne avec un texte, etc

    ToolStripSeparator Il sagit dun lment particulier, il permet

    surtout de mettre une sorte de barre

    permettant de sparer visuellement nos

    lments.

    ToolStripComboBox Cet lment fonctionne comme une ComboBox

    classique.

    ToolStriptextBox Cet lment est identique une TextBox

    classique. En revanche il est impossible dutiliser

    la proprit Multiline.

    ToolStripProgressBar Cet lment est similaire une ProgressBar. Il

    est par exemple possible de dfinir son style

    avec un avancement en blocs ou en continue.

    ToolStripDropDownButton Cet lment permet douvrir un menu droulant

    lorsque que lutilisateur clique sur licne ou la

    flche droite.

    ToolStripSplitButton Cet lment fonctionne comme le

    ToolStripDropButton, c'est--dire quil permet

    douvrir un menu droulant. Mais lutilisateur

    peut en revanche cliquer sur licne pour une

    autre action. C'est--dire que pour ouvrir le

    menu droulant, il faut cliquer sur la flche.

  • 7 Les menus et vnements

    14/09/08

    2.4 Grer les images dans un ToolStrip

    Les lments ToolStripButton, ToolStripDropDownButton et ToolStripSplitButton peuvent tre

    personnaliss par des images et/ou texte.

    Voici les proprits principales pour grer les images et textes :

    Types de Proprits Description

    DisplayStyle Permet de dfinir si le contrle affiche du texte,

    une image ou les deux.

    Image Permet dassocier une image au contrle.

    ImageAlign Permet de dfinir comment limage est place

    sur le contrle.

    ImageScaling Permet de dfinir si limage sera redimensionne

    pour tre adapte au contrle.

    ImageTransparentColor Permet de dfinir la couleur de fond lorsque

    limage (ou une partie) est transparente.

    2.5 Le container ToolStripContainer

    Le ToolStripContainer est une classe permettant de contenir un ou plusieurs ToolStrip. De plus,

    avec cette option, lutilisateur du logiciel pourra dplacer librement son/ses ToolStrip sur tous les

    bords de la Form.

    Vous pouvez dfinir quels bords seront disponibles pour lutilisateur avec les proprits (Top ou

    Right/Left/Bottom)ToolStripPanelVisible.

    2.6 La fusion de ToolStrip

    Les ToolStrip peuvent tre fusionns lors de lexcution de votre logiciel avec la mthode

    ToolStripManager.Merge.

    Lorsque des ToolStrip sont fusionns, chaque lment des ToolStrip sources est compar avec

    chaque lment des ToolStrip viss. Pour pouvoir fusionner correctement vos ToolStrip, la proprit

    AllowMerge doit tre sur True.

  • 8 Les menus et vnements

    14/09/08

    3 Configurer et crer des menus

    3.1 Prsentation du contrle MenuStrip

    Le contrle MenuStrip est un regroupage de commandes qui les rend plus accessible et qui

    est optimis pour laffichage de ToolStripMenuItems. Les ToolStripMenuItems sont des contrles qui

    permettent une meilleure visualisation dans les menus. Ils peuvent tre sous une ou plusieurs formes

    (texte ou image). Ainsi grce au MenuStrip vous pourrez crer un menu dlments pour votre

    programme.

    Remarque : Un MenuStrip est le menu que lon retrouve dans pratiquement tous les programmes

    tels que Microsoft Word ou encore Adobe.

    Les proprits importantes du contrle MenuStrip sont affiches ci-dessous :

    Proprits Description

    AllowItemReoder

    Permet dindiquer si les Item qui peuvent tre

    rorganiss par lutilisateur. Si sa valeur est True

    lutilisateur peut dplacer les Item en

    maintenant la touche Alt.

    AllowMerge Indique si le MenuStrip peut tre fusionn avec

    un autre MenuStrip.

    Dock

    Dtermine quelles bordures sera associ le

    contrle ainsi que le redimensionnement avec le

    contrle parent (ex : la Form).

    LayoutStyle Dfinit selon des valeurs comment les lments

    du contrle MenuStrip seront disposs.

    RenderMode

    Indique le style de peinture du contrle appliqu

    au MenuStrip (System pour un style basique du

    systme, Professional pour une apparence

    ressemblant lOffice de Microsoft, et

    ManagerRenderMode pour un style de base de

    Visual Studio).

    ShowItemToolTips Dfinit si les ToolStripItems du contrle

    MenuStrip ont des info-bulles.

    Strech Dfinit une valeur si le MenuStrip stend dun

    bout lautre de son container (Form, Panel)

    TextDirection Indique la direction du texte dans les contrles

    accueillant des MenuStrip.

  • 9 Les menus et vnements

    14/09/08

    Bien sr nous pouvons remarquer une grande similitude entre les proprits du contrle MenuStrip

    et du contrle ToolStrip car le MenuStrip drive du ToolStrip.

    Ensuite nous avons ToolStripMenusItems qui fonctionne avec le contrle MenuStrip et voici ses

    principales proprits :

    Proprits Description

    AutoSize Dtermine si le menu dlment redimensionne

    automatiquement le texte.

    Checked Dfinit si le ToolStripMenuItems apparat comme

    tant activ (checked).

    CheckOnClick

    Dtermine une valeur pour indiquer si le

    ToolStripMenuItems doit apparatre

    automatiquement activ ou dsactiv lorsque

    lutilisateur clique dessus.

    CheckState

    Dfinit dans quel tat se trouve initialement le

    ToolStripMenuItems (activ, dsactiv ou

    indtermin).

    DisplayStyle Indique si le(s) texte(s) et/ou le(s) image(s) sont

    affich(e)(s) dans le ToolStripMenuItems.

    DoubleClickEnabled Indique si le ToolStripMenuItems peut tre

    activ grce au double clic de la souris.

    DropDownItems

    Obtient la collection dlment dans

    ToolStripDropDown auquel la proprit

    DropDown fait rfrence.

    Enable Dtermine si le contrle est activ.

    Image Indique limage dfinit dans le ToolStripItem.

    MergeAction Dtermine les actions prises lorsque les menus

    enfants sont fusionns avec les menus parents.

    MergeIndex Dfinit la position des lments aprs que les

    menus ont fusionn.

    ShortcuKeyDisplayString Indique le texte associ la touche de raccourci.

    ShortcutKeys Dtermine la touche de raccourci lie au

    ToolStripMenuItem.

    ShowShortcutKeys Dtermine si les touches raccourcis associe aux

    ToolStripMenuItems sont affiches cot de ces

  • 10 Les menus et vnements

    14/09/08

    mme ToolStripMenuItem.

    Text Indique le texte qui sera affich dans llment.

    TextImageRelation

    Dfinit la position du texte et de limage du

    ToolStripMenuItem par rapport lun et lautre,

    lorsque la proprit DisplayStyle est dfinie sur

    ImageAndText.

    3.2 Concevoir et grer des MenuStrips et des ToolStripMenuItem

    La cration du contrle MenuStrip se fait de la mme faon que tous les autres

    contrles : dans la partie design vous faites glisser votre contrle dans votre Formulaire

    depuis la Toolbox. Ensuite vous pouvez ajouter des lments en cliquant sur votre

    contrle puis en renommant votre lment et/ou en choisissant son type (MenuItem,

    ComboBox). Si vous renommez votre lment sans choisir votre type dlment, il sera

    alors par dfaut un MenuItem.

    Ici nous choisissons le type dlment que nous voulons insrer dans le contrle.

  • 11 Les menus et vnements

    14/09/08

    Ici nous renommons directement llment en double-cliquant sur son emplacement, nous

    obtiendrons ainsi par dfaut un MenuItem.

    Remarque : Par dfaut le nom des lments ajout sera du type

    nom_de_votre_lmentToolStripMenuItem ou encore ToolStripComboBox1.

    Vous ajoutez tout dabord votre MenuStrip (ici le nom de rfrence du contrle est MenuStrip1) puis

    vous insrez vos lments comme dans le code suivant :

    VB

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As

    System.EventArgs) Handles MyBase.Load

    'Nous crons un nouvel lment MenuItem appel "Fichier"

    Dim FichierToolStripMenuItem As New ToolStripMenuItem("Fichier")

    'puis nous lajoutons dans le contrle MenuStrip

    MenuStripTest.Items.Add(FichierToolStripMenuItem)

    End Sub

  • 12 Les menus et vnements

    14/09/08

    //C#

    private void Form1_Load(object sender, EventArgs e)

    {

    // Nous crons un nouvel lment MenuItem appel "Fichier"

    ToolStripMenuItem FichierToolStripMenuItem = new

    ToolStripMenuItem("Fichier");

    //puis nous lajoutons dans le contrle MenuStrip

    menuStripTest.Items.Add(FichierToolStripMenuItem);

    }

    Ensuite vous pouvez amliorer votre MenuStrip depuis ses proprits, par linterface de

    lutilisateur ou encore depuis sa partie code. Ci-dessous vous retrouverez diffrents

    exemple damliorations de votre contrle :

    Le sparateur

    Interface utilisateur :

  • 13 Les menus et vnements

    14/09/08

    Code :

    VB

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As

    System.EventArgs) Handles MyBase.Load

    nous crons un nouveau sparateur

    Dim Separateur As New ToolStripSeparator

    puis nous l'insrons dans le contrle aprs le premier lment de celui-

    ci

    MenuStripTest.Items.Insert(2, aSeparator)

    End Sub

    //C#

    private void Form1_Load(object sender, EventArgs e)

    {

    // nous crons un nouveau sparateur

    ToolStripSeparator Separateur = new ToolStripSeparator();

    //puis nous l'insrons dans le contrle aprs le premier lment de celui-

    ci

    menuStripTest.Items.Insert(2, aSeparator);

    }

    Dsactiver, cacher ou supprimer des lments du menu :

    Il est parfois utile de dsactiver certaines options de votre menu. Pour cela il vous faut dfinir

    la mthode Enabled sur False. Llment sera visible par lutilisateur mais ne pourra tre invoqu par

    le clic ou par les touches de raccourcis.

    Vous pouvez aussi cacher les lments de votre menu en dfinissant la proprit Visible sur

    False. Celui-ci sera invisible lutilisateur mais cependant il peut encore linvoquer grce aux touches

    de raccourcis. Ainsi il vous faudra dsactiver llment si vous voulez quil ne puisse tre invoqu.

    Enfin si vous voulez supprimer un lment dfinitivement aprs plusieurs manipulations de

    lutilisateur, il vous sera ncessaire dutiliser les mthodes MenuStrip.Items.Remove ou

    MenuStrip.Items.RemoveAt pour un menu, ou bien les mthodes

    ToolStripMenuItem.DropDown.Remove ou ToolStripMenuItem.DropDown.RemoveAt pour un sous-

    menu. Vous trouverez ci-dessous un exemple comportant les diffrentes mthodes de

    suppression (menu et sous-menu):

  • 14 Les menus et vnements

    14/09/08

    VB

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As

    System.EventArgs) Handles MyBase.Load

    nous supprimons dans le code suivant llment Fichier du MenuStrip

    MenuStripTest.Items.Remove(FichierToolStripMenuItem)

    nous supprimons ici un lment du menu Editer (le sous-menu Couper)

    EditerToolStripMenuItem.DropDownItems.Remove(CouperToolStripMenuItem)

    nous supprimons le premier lment du MenuStrip

    MenuStripTest.Items.RemoveAt(0)

    nous supprimons llment Couper du menu Editer qui se trouve en premire

    position (index 1)

    EditerToolStripMenuItem.DropDownItems.RemoveAt(0)

    End Sub

    //C#

    private void Form1_Load(object sender, EventArgs e)

    {

    //nous supprimons dans le code suivant llment Fichier du MenuStrip

    menuStripTest.Items.Remove(FichierToolStripMenuItem) ;

    //nous supprimons ici un lment du menu Editer (le sous-menu Couper)

    EditerToolStripMenuItem.DropDownItems.Remove(CouperToolStripMenuItem) ;

    //nous supprimons le premier lment du MenuStrip (index 0)

    menuStripTest.Items.RemoveAt(0) ;

    //nous supprimons llment Couper du menu Editer qui se trouve en

    premire position (index 0)

    EditerToolStripMenuItem.DropDownItems.RemoveAt(0);

    }

  • 15 Les menus et vnements

    14/09/08

    Dplacer vos lments

    Vous pouvez dplacer vos lments de votre contrle lors de lexcution en utilisant la

    mthode menuStrip.Items.Insert avec laquelle vous aurez la possibilit de choisir la position ou la

    mthode menuStrip.Items.Add avec laquelle vous ajoutez seulement llment donc celui-ci se

    placera en dernire position. Cela vous permettra de personnaliser dynamiquement vos menus. Par

    exemple vous pouvez dplacer un sous-lment dun menu pour en faire un menu (le sous-lment

    sera supprim automatiquement dans le menu o il se trouvait) ou changer lordre de vos menus :

    VB

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As

    System.EventArgs) Handles MyBase.Load

    nous ajoutons llment Editer dans le contrle

    MenuStripTest.Items.Add(EditerToolStripMenuItem)

    nous insrons llment Editer en indiquant sa position(index 3)

    MenuStripTest.Items.Insert(3, EditerToolStripMenuItem)

    End Sub

    //C#

    private void Form1_Load(object sender, EventArgs e)

    {

    //nous ajoutons llment Editer dans le contrle

    menuStripTest.Items.Add(editerToolStripMenuItem);

    //nous insrons llment Editer en indiquant sa position(index 3)

    menuStripTest.Items.Insert(3, editerToolStripMenuItem);

    }

    Vous pouvez galement utiliser la proprit ToolStripMenuItem.DropdownItems pour

    dplacer un menu dans un autre ou encore un sous-lment dun menu dans un autre menu. Vous

    utiliserez les mthodes Add ou Insert de la mme faon que lexemple prcdent :

  • 16 Les menus et vnements

    14/09/08

    VB

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As

    System.EventArgs) Handles MyBase.Load

    nous ajoutons llment Couper du menu Fichier que nous avions cr dans

    le menu Editer

    EditerToolStripMenuItem.DropDownItems.Add(CouperToolStripMenuItem)

    nous insrons llment Couper, en indiquant sa position(index 0),du menu

    Fichier que nous avions cr dans le menu Editer

    EditerToolStripMenuItem.DropDownItems.Insert(0, CouperToolStripMenuItem)

    End Sub

    //C#

    private void Form1_Load(object sender, EventArgs e)

    {

    //nous ajoutons llment Couper du menu Fichier que nous avions cr dans

    le menu Editer

    editerToolStripMenuItem.DropDownItems.Add(couperToolStripMenuItem);

    //nous insrons llment Couper, en indiquant sa position(index 0),du

    menu Fichier que nous avions cr dans le menu Editer

    editerToolStripMenuItem.DropDownItems.Insert(0, couperToolStripMenuItem);

    }

    Le raccourci clavier

    Vous pouvez aussi crer des raccourcis pour vos contrles. Pour cela vous pouvez vous rfrer aux

    prcdents chapitres (exemple : Chapitre 2 le contrle Label).

    Les touches de raccourcis

    A la diffrence du raccourci clavier, les touches de raccourcis permettent dexcuter une

    commande et ne peuvent tre utiliss que dans les sous-menus. Par exemple dans le menu Fichier de

  • 17 Les menus et vnements

    14/09/08

    votre programme vous pourrez dfinir les touches de raccourcis Ctrl+N pour accder au sous-menu

    Nouveau et ainsi crer un nouveau fichier.

    Vous pouvez crer les touches de raccourcis lors de la conception en slectionnant la proprit

    ShortcutKeys dans les proprits du ToolStripMenuItem de votre choix. Ensuite si vous voulez afficher

    vos touches de raccourcis dans le menu vous attribuerez alors la valeur True dans la proprit

    ShownShortcutKeys ou bien grce la proprit ShortcutKeyDisplayString vous pourrez afficher un

    texte la place de la combinaison des touches que vous avez dfini votre lment.

    Nous dfinissons ici les touches de raccourcis Alt+N notre lment Nouveau dans notre

    menu Fichier.

    Fusionner les menus :

    Les menus peuvent tre fusionns au moment de lexcution et les lments de ces menus

    sont intgrs dans un menu unique. Vous pouvez fusionner des MenuStrip, des ContextMenuStrip

    (nous verrons ce contrle en dtails plus loin dans la leon), ou bien les deux. Pour cela vous

  • 18 Les menus et vnements

    14/09/08

    utiliserez la mthode ToolStripManager.Merge en indiquant le menu source, le menu de destination,

    et laction entreprendre par la proprit MergeAction. Voici les diffrentes options que propose

    cette proprit :

    Proprits Description

    Append Ajoute llment la fin de la collection

    Insert Insert llment lemplacement spcifi par

    la proprit MergeIndex.

    MatchOnly Permet de crer une arborescence et accder

    correctement aux lments imbriqus

    Remove Supprime llment spcifi.

    Replace Remplace llment identifi par llment

    source.

    3.3 Le contrle ContextMenuStrip

    Le contrle ContextMenuStrip est un menu contextuel qui saffiche lorsque lutilisateur ralise

    un clic-droit sur un contrle (TextBox, Bouton) ou sur une zone du Formulaire. Ce contrle est

    similaire au MenuStrip, cependant la principale diffrence entre ces deux contrles est le fait que le

    ContextMenuStrip ne possde pas de menu de haut niveau c'est--dire quil ne dtient pas une

    arborescence comme dans les MenuStrip (ex : un haut niveau menu appel Fichier contenant des

    sous-menus).

    Ajouter ou supprimer un ContextMenuStrip :

    Vous utiliserez tout simplement les mthodes ContextMenuStrip.Items.Add pour ajouter et

    ContextMenuStrip.Items.Remove pour supprimer, comme dans lexemple de code suivant :

  • 19 Les menus et vnements

    14/09/08

    VB

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As

    System.EventArgs) Handles MyBase.Load

    nous ajoutons llment Annuler dans le contrle ContextMenuStripTest

    ContextMenuStripTest.Items.Add(AnnulerToolStripMenuItem)

    nous supprimons cet lment du contrle ContextMenuStripTest

    ContextMenuStripTest.Items.Remove(AnnulerToolStripMenuItem)

    End Sub

    //C#

    private void Form1_Load(object sender, EventArgs e)

    {

    \\nous ajoutons llment Annuler dans le contrle ContextMenuStripTest

    contextMenuStripTest.Items.Add(annulerToolStripMenuItem) ;

    \\nous supprimons cet lment du contrle ContextMenuStripTest

    contextMenuStripTest.Items.Remove(annulerToolStripMenuItem) ;

    }

    Associer un ContextMenuStrip un contrle ou une Form:

    Pour associer un ContexMenuStrip un contrle ou votre Form, il vous faut simplement

    slectionner votre ContextMenuStrip dans la proprit ContextMenuStrip du contrle ou de la Form

    auquel vous voulez lassocier. Vous avez alors la possibilit soit de le faire lors de la conception de

    votre programme soit lors de lexcution comme ci-dessous :

  • 20 Les menus et vnements

    14/09/08

    VB

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As

    System.EventArgs) Handles MyBase.Load

    nous ajoutons quelques lment dans le ContextMenuStripTest

    ContextMenuStripTest.Items.Add(AffichageToolStripMenuItem)

    ContextMenuStripTest.Items.Add(NouveauToolStripMenuItem)

    puis nous associons ce ContextMenuStrip au contrle TextBox

    TextBox1.ContextMenuStrip = ContextMenuStripTest

    End Sub

    //C#

    private void Form1_Load(object sender, EventArgs e)

    {

    nous ajoutons llment Annuler dans le contrle ContextMenuStripTest

    contextMenuStripTest.Items.Add(affichageToolStripMenuItem);

    contextMenuStripTest.Items.Add(nouveauToolStripMenuItem);

    puis nous associons ce ContextMenuStrip au contrle TextBox

    textBox1.ContextMenuStrip = ContextMenuStripTest;

    }

  • 21 Les menus et vnements

    14/09/08

    Copie des lments dun menu partir dun Menustrip au moment de lexcution :

    Le plus souvent vous voulez crer des menus contextuels qui contiennent les mmes

    lments quun menu contextuel ordinaire. Pour cela il vous suffit dappeler le constructeur

    ToolStripMenuitem qui vous permettra de prciser le texte, limage et lvnement clic dun

    gestionnaire dvnement. Ainsi vous ajoutez le MenuStrip choisi votre contrle ContextMenuStrip.

    Vous trouverez un exemple ci-dessous manipulant ces diffrentes mthodes :

    VB

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As

    System.EventArgs) Handles MyBase.Load

    nous appelons le constructeur ToolStripMenuItem puis ses mthodes

    Dim anItem As ToolStripMenuItem

    anItem = New ToolStripMenuItem(EditerToolStripMenuItem.Text,

    _EditerToolStripMenuItem.Image, New EventHandler(addressof

    _EditerrToolStripMenuItem_Click))

    puis nous copions dans le contrle ContextMenuStrip

    ContextMenuStripTest.Items.Add(anItem)

    End Sub

    //C#

    private void Form1_Load(object sender, EventArgs e)

    {

    //nous appelons le constructeur ToolStripMenuItem puis ses mthodes

    ToolStripMenuItem anItem

    anItem = new ToolStripMenuItem(editerToolStripMenuItem.Text,

    _editerToolStripMenuItem.Image, new

    EventHandler(editerToolStripMenuItem_Click))

    //puis nous copions dans le contrle ContextMenuStrip

    contextMenuStripTest.Items.Add(anItem)

    }

  • 22 Les menus et vnements

    14/09/08

    4 Grer les vnements et utiliser le Event Handlers

    Un vnement est une sorte de message qui permet de signaler que quelque chose se passe

    dans votre application. Lorsque quun vnement est dclench, cela offre la possibilit de ragir

    avec ces vnements grce aux mthodes Event Handlers (gestionnaire dvnement).

    4.1 Les vnements en gnral

    Les vnements appartiennent au contrle ou la classe qui les contiennent. En effet,

    lorsque que quelque chose se passe, un contrle ou une classe peut appeler un vnement comme

    par exemple lorsque quun utilisateur clique sur un bouton, cela lance un Click qui par la suite

    excute les mthodes quil contient. Les vnements sont gnrs grce la souris, le clavier, ou

    bien dautres actions du systme (exemple : envoie dun mail lors dune nouvelle particulire

    laquelle vous tes abonn.

    Remarque : Une mthode peut grer plusieurs vnements et un vnement peut tre grer par

    plusieurs mthodes !

    Voici les vnements les plus communs :

    Types dvnements Description

    Click Gnr lors du clic gauche de la souris.

    DoubleClick Gnr lors dun double clic rapide du clic

    gauche de la souris.

    KeyDown Gnr lors le la pression dune touche quand le

    control a le focus. Il contient des informations

    diffrentes du KeyPress.

    KeyPress Gnr lors le la pression dune touche quand le

    contrle a le focus. Il contient des informations

    diffrentes du KeyDown.

    KeyUp Gnr lors du relchement dune touche quand

    le contrle a le focus.

    MouseClick Gnr lorsque quune touche quelconque de la

    souris est presse.

    MouseDoubleClick Gnr lorsque quune touche quelconque de la

    souris est presse deux fois rapidement.

    MouseDown Gnr lorsque le curseur de la souris est sur le

  • 23 Les menus et vnements

    14/09/08

    contrle et quun bouton de la souris est press.

    MouseEnter Gnr lorsque le curseur de la souris se trouve

    dans le contrle.

    MouseHover Gnr lorsque le curseur se positionne sur le

    contrle.

    MouseLeave Gnr lorsque le curseur scarte du contrle.

    MouseMove Gnr lorsque le curseur de la souris est plac

    sur le contrle.

    MouseUp Gnr lorsque le curseur de la souris se trouve

    sur le contrle et que le bouton de la souris est

    relch.

    MouseWheel Gnr lorsque la roulette de la souris bouge

    alors quun contrle a le focus.

  • 24 Les menus et vnements

    14/09/08

    4.2 Crer un gestionnaire dvnements (Event Handlers) la conception

    Vous avez accs au gestionnaire des vnements dun contrle en allant sur la proprit de

    celui-ci et en cliquant sur licne (clair encadr en rouge ci-dessous).

  • 25 Les menus et vnements

    14/09/08

    4.3 Crer un vnement pour un contrle

    Il suffit daller dans le gestionnaire dvnement de votre contrle puis de double-cliquer sur

    lvnement que vous souhaitez. Cela vous mnera directement dans le code o vous pourrez

    associer le contrle et votre vnement aux tches que vous souhaitez que votre contrle fasse.

    Vous pouvez associer plusieurs vnements un mme contrle ainsi que plusieurs contrles au

    mme vnement.

    4.4 Grer les vnements au clavier et la souris

    La majorit des vnements sont dclenchs par la souris ou le clavier :

    Evnement dclench par le clavier :

    Nous avons vu prcdemment les trois vnements principaux du clavier : le KeyDown, le KeyPress et

    le KeyUp.

    Les informations permettant de connatre les activits des ces Key se trouvent dans le

    KeyEventArgs. En effet de base, les informations les plus communes se trouvent dans lEventArgs ;

    dans le cas du clavier, dautres informations sont susceptibles de servir, par exemple savoir quelle

    touche a t presse ! Par consquent le KeyEventArgs remplace lEventArgs tout en hritant de ses

    informations.

  • 26 Les menus et vnements

    14/09/08

    Voici les proprits du KeyEventArgs :

    Types de Proprits Description

    Alt Rcupre la valeur indique quand la touche Alt

    est presse.

    Control Rcupre la valeur indique quand la touche Ctrl

    est presse.

    Handled Rcupre ou dfinit une valeur indiquant si

    lvnement a t gr.

    KeyCode Retourne le code de la touche presse.

    KeyData Retourne les donnes de la touche presse.

    KeyValue Retourne une reprsentation de la proprit

    KeyData.

    Modifiers Rcupre les indicateurs de touches de

    modification dun vnement. Les indicateurs

    indiquent la combinaison de touches Ctlr, Alt et

    Maj actives.

    Shift Rcupre la valeur indique quand la touche

    Shift est presse.

    SuppressKeyPress Rcupre ou dfinit une valeur qui indique si

    lvnement dune touche doit tre transmit au

    contrle sous-jacent.

    Evnement dclench par la souris :

    Les deux actions les plus communes avec la souris sont le clique et le double-clique (Click et

    DoubleClick). Par rapport au clavier les informations permettant de connatre leurs activits se

    trouvent dans le simple EvenArgs.

    Voici par exemple lassociation dun Button avec un vnement Click :

    VB

    private Sub button1_Click(ByVal sender As System. Object, e As

    System.EventArgs e)

    //Vous crivez ici l'action qui va se drouler au moment de

    l'vnement.

  • 27 Les menus et vnements

    14/09/08

    //C#

    private void button1_Click(object sender, EventArgs e)

    {

    //Vous crivez ici l'action qui va se drouler au moment de

    l'vnement.

    }

    En revanche les autres proprits (vu prcdemment au 4.1) Mouse ont un MouseEventArgs la

    place de EventArgs. Le MouseEventArgs fonctionne comme le KeyEventArgs avec des informations

    diffrentes et ayant un rapport avec la souris. En effet, il est important de pouvoir connatre la

    position du curseur, les pressions, etc.

    Voici les proprits du MouseEventArgs :

    Types de Proprits Description

    Button Indique quel bouton a t press.

    Clicks Indique combien de fois un bouton a t press.

    Delta Indique le nombre de fois o la molette a t

    touche.

    Location Indique la position actuelle de la souris.

    X Indique la coordonne X de la position de la

    souris.

    Y Indique la coordonne Y de la position de la

    souris.

    4.5 Charger des mthodes avec le Code Editor

    Le modificateur override en C# et Override en Visual Basic est ncessaire pour tendre ou

    modifier l'implmentation abstraite ou virtuelle d'une mthode, d'une proprit, d'un indexeur ou

    d'un vnement hrit(e).

    Le Code Editor vous permet de charger ces mthodes facilement dans votre classe de base.

    Vous devez donc dans votre diteur, lintrieur de votre classe corps mais en dehors dune

    mthode, taper override en C# ou Override en Visual Basic. Un menu droulant saffiche et vous

    permet de choisir la mthode que vous voudrez grce la saisie automatique.

  • 28 Les menus et vnements

    14/09/08

    En C#

    En Visual Basic

    5 Conclusion

    Vous avez termin ce 4me chapitre de Windows Form. Comme dhabitude, nous vous

    conseillons de pratiquer ce que vous venez de voir et galement de vous aider du MSDN pour avoir

    un support complet des lments Winforms.

    Lquipe Windows Form.