c# gestion d'Evénement button_click
Répondre à la discussion
Affichage des résultats 1 à 8 sur 8

c# gestion d'Evénement button_click



  1. #1
    221

    c# gestion d'Evénement button_click


    ------

    bonjour a tous ,

    j débute en c# et j aimerais vraiment comprendre le sens de ces quelques lignes( de 2 a 4 précisément ) :
    Code:
    private void btnMenu_Click(object sender, RoutedEventArgs e)
            {
                (sender as Button).ContextMenu.IsEnabled = true;
                (sender as Button).ContextMenu.PlacementTarget = (sender as Button);.........2
                (sender as Button).ContextMenu.Placement = System.Windows.Controls.Primitives.PlacementMode.Bottom;
                (sender as Button).ContextMenu.IsOpen = true;...........................................4
            }
    en vous remerciant bien sur .

    -----
    Dernière modification par JPL ; 11/05/2016 à 14h10. Motif: Ajout de la balise Code (#) pour garder l'indentation

  2. #2
    Bluedeep

    Re : c# gestion d'Evénement button_click

    Bonjour

    Merci d'utiliser les balises CODE pour que le code soit lisible.

    Ensuite quand on pose une question relative au développement UI dans .NET , le minimum est d'indiquer le type d'application (ici WPF probablement): ceux susceptibles de vous répondre ne sont pas forcément devins.


    Sinon, lignes 2 et 4 de l'event handler :

    - PlacementTarget : permet d'overrider le positionnement par défaut du menu contextuel (par défaut il s'accroche à l'objet pour lequel il est appelé).
    - IsOpen : permet d'afficher ou pas le menu contextuel (ou de contrôler si il est affiché).

    Plus d'info ici :
    https://msdn.microsoft.com/en-us/lib...v=vs.110).aspx
    https://msdn.microsoft.com/en-us/lib...v=vs.110).aspx
    Dernière modification par Bluedeep ; 11/05/2016 à 12h01.

  3. #3
    221

    Re : c# gestion d'Evénement button_click

    merci pour votre réponse bluedeep
    en m'excusant auprès de tous ceux qui ont lu ce message qui ne respecte pas la mise en forme requise.

    cependant je vous signal monsieur bluedeep que j ai bien précisé les lignes de 2 a 4 ,merci donc de compléter votre réponse .

  4. #4
    Bluedeep

    Re : c# gestion d'Evénement button_click

    Citation Envoyé par 221 Voir le message
    merci pour votre réponse bluedeep
    en m'excusant auprès de tous ceux qui ont lu ce message qui ne respecte pas la mise en forme requise.

    cependant je vous signal monsieur bluedeep que j ai bien précisé les lignes de 2 a 4 ,merci donc de compléter votre réponse .
    ContextMenu.Placement définit le positionnement du menu contextuel par rapport au contrôle de rattachement; ici en bas (Bottom).

  5. A voir en vidéo sur Futura
  6. #5
    221

    Re : c# gestion d'Evénement button_click

    encore une fois je vous remercie

    concernant la ligne(2) du PlacementTarget qui permet d'outrepasser le positionnement par défaut du menu,est ce que le fait de lui avoir affecté (sender as Button) désigne le fait que le menu garde sa position par défaut ?

  7. #6
    Bluedeep

    Re : c# gestion d'Evénement button_click

    Citation Envoyé par 221 Voir le message
    encore une fois je vous remercie

    concernant la ligne(2) du PlacementTarget qui permet d'outrepasser le positionnement par défaut du menu,est ce que le fait de lui avoir affecté (sender as Button) désigne le fait que le menu garde sa position par défaut ?
    Je dirais oui (même si je ne code plus depuis de très nombreuses années), ce qui fait qu'en première approximation je ne vois pas trop l’intérêt de cette ligne (à vrai dire l'ensemble semble un peu codé avec les pieds : par exemple, l'opérateur de cast dynamique "as" est parfaitement inutile ici - en effet si le cast se passe mal, l'opération retourne un null, et le code va lever une NullReferenceException du fait de l'appel aux propriétés - donc pourquoi ne pas utiliser un cast static alors ?)

  8. #7
    221

    Re : c# gestion d'Evénement button_click

    le c# ne s oublie pas monsieur bluedeep c est comme le vélo(parole de débutant).

    j avoue que moi non plus je ne vois pas l'utilité de la ligne 2 a partir du moment ou mon menu contextuel s'affiche pile poil en dessous de mon button sur l UI en question.

    concernant "sender as Button" qui veut en gros dire que notre objet button est l envoyeur de l Evénement je vous sollicite pour confirmation .

    merci

  9. #8
    Bluedeep

    Re : c# gestion d'Evénement button_click

    Citation Envoyé par 221 Voir le message
    le c# ne s oublie pas monsieur bluedeep c est comme le vélo(parole de débutant).

    j avoue que moi non plus je ne vois pas l'utilité de la ligne 2 a partir du moment ou mon menu contextuel s'affiche pile poil en dessous de mon button sur l UI en question.

    concernant "sender as Button" qui veut en gros dire que notre objet button est l envoyeur de l Evénement je vous sollicite pour confirmation .

    merci
    Non, ca veut dire que "sender" qui est l'objet qui a levé l'évenement est casté en type "Button" pour avoir accès à ses propriétés. (car oin sait que c'est un "button").
    Mais ici ce que je critique c'est le choix d'un cast dynamique (ce sont des notions fondamentales en C#, avec les objets de type "value" et de type "reference", les concepts de boxing/unboxing, etc ....)
    Dernière modification par Bluedeep ; 11/05/2016 à 14h10.

Discussions similaires

  1. Que faire après un bac pro gestion administration (en dehors de la gestion)...
    Par amd126 dans le forum Orientation après le BAC
    Réponses: 0
    Dernier message: 23/12/2015, 19h14
  2. Réponses: 16
    Dernier message: 12/03/2015, 16h29
  3. Réponses: 2
    Dernier message: 24/11/2009, 21h23
  4. Des Sciences de Gestion, ou de la Science appliquée aux Arts de gestion ?²
    Par invite5ecc4617 dans le forum [ARCHIVE] Psychologie / Sociologie
    Réponses: 3
    Dernier message: 06/01/2005, 18h42