IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Forms Discussion :

[C#]Attribut d' événements


Sujet :

Windows Forms

  1. #1
    Membre très actif
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    612
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2008
    Messages : 612
    Par défaut [C#]Attribut d' événements
    Bonjour,
    --------

    Dans un contrôle, on a une liste d'événements prédéfinis, qui apparaissent triés par catégorie francisée dans la fenêtre de propriété.

    Par exemple : MouseEnter se trouve dans la catégorie "Souris".

    Pour pouvoir ajouter de nouveaux événements, il faut préciser la catégorie avec l'attribut "Category".
    Par exemple, pour que sa propre propriété apparaisse avec les autres événements "souris", il faut ajouter :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     [Category("Mouse")]
    Mais le problème, c'est que si j'ai trouvé que "Mouse" = "Souris".
    Je ne trouve pas les autres.
    Par exemple, j'essaye d'ajouter des événements à "Propriété modifiée".
    J'ai essayé "PropertyChanged" avec ou sans espace, et plein d'autres.

    Si j'essaye directement "Propriété modifiée", ça fonctionne évidemment, mais je risque de ne plus être très compatible avec un utilisateur utilisant un autre langage que le Français.

    Quelqu'un peut me dire à quoi ça correspond, et surtout où je peux trouver la liste de toutes les catégories "standard"?

    Merci d'avance
    Claude

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    La catégorie à utiliser, a priori, est CatPropertyChanged

    Pour mettre un nom de catégorie "localisable", en fait il faut bidouiller un peu... il faut créer un attribut qui hérite de CategoryAttribute, overrider la méthode GetLocalizedString, et utiliser ton nouvel attribut à la place de Category

    Pour info, les catégories "prédéfinies" dans Windows Forms sont les suivantes :
    CatAccessibility=Accessibility
    CatAction=Action
    CatAppearance=Appearance
    CatAsynchronous=Asynchronous
    CatBehavior=Behavior
    CatColors=Colors
    CatData=Data
    CatDisplay=Display
    CatDragDrop=Drag Drop
    CatFocus=Focus
    CatFolderBrowsing=Folder Browsing
    CatItems=Items
    CatKey=Key
    CatLayout=Layout
    CatMouse=Mouse
    CatPrivate=Private
    CatPropertyChanged=Property Changed
    CatWindowStyle=Window Style
    (extrait avec Reflector des ressources de l'assembly System.Windows.Forms)

  3. #3
    Membre très actif
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    612
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2008
    Messages : 612
    Par défaut
    Salut
    -----

    Merci pour la réponse.
    J'ai essayé de mettre l'attribut CatPropertyChanged, mais ça m'a simplement ajouté une nouvelle catégorie qui porte ce nom.

    Idem si je mets CatMouse. Par contre, si je mets "Mouse" tout court, j'ai bien le nom qui apparaît dans la catégorie "Souris".

    Si je mets "PropertyChanged" (j'avais essayé) j'ai par contre une nouvelle rubrique plutôt qu'un accès à la catégorie "Propriété modifiée".

    Donc Mouse fonctionne, mais ni CatPropertyChanged, ni PropertyChanged

    Quand je désassemble avec Relector, je ne vois par contre pas les attributs, je ne sais donc pas voir ceux qui sont utilisés. A mon avis, je dois avoir "raté un épisode" quelque part

    A+
    Claude

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par ClaudeBg Voir le message
    Quand je désassemble avec Relector, je ne vois par contre pas les attributs, je ne sais donc pas voir ceux qui sont utilisés. A mon avis, je dois avoir "raté un épisode" quelque part
    ah bon ?
    bizarre, moi je les vois bien...

    Sinon, j'ai pas l'impression qu'il y ait une catégorie PropertyChanged prédéfinie. Dans les ressources utilisées par la classe CategoryAttribute, il y a ça :
    PropertyCategoryAction=Action
    PropertyCategoryAppearance=Appearance
    PropertyCategoryAsynchronous=Asynchronous
    PropertyCategoryBehavior=Behavior
    PropertyCategoryConfig=Configurations
    PropertyCategoryData=Data
    PropertyCategoryDDE=DDE
    PropertyCategoryDefault=Misc
    PropertyCategoryDesign=Design
    PropertyCategoryDragDrop=Drag Drop
    PropertyCategoryFocus=Focus
    PropertyCategoryFont=Font
    PropertyCategoryFormat=Format
    PropertyCategoryKey=Key
    PropertyCategoryLayout=Layout
    PropertyCategoryList=List
    PropertyCategoryMouse=Mouse
    PropertyCategoryPosition=Position
    PropertyCategoryScale=Scale
    PropertyCategoryText=Text
    PropertyCategoryWindowStyle=Window Style
    Dans System.Windows.Forms, c'est SRCategoryAttribute qui est utilisé, avec les valeurs de catégorie de mon post précédent

    Sinon, tu peux essayer de faire comme j'ai suggéré, en créant ton propre attribut

  5. #5
    Membre très actif
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    612
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2008
    Messages : 612
    Par défaut
    Salut
    -----

    Ok, merci, ça explique pourquoi je ne trouvais pas cette catégorie.

    Pour ce qui est de reflector, je vais voir pourquoi lorsque je désassemble, aucun attribut n'apparaît, jusqu'ici je pensais que c'était normal

    Mais je vais commencer par essayer de benner les dernières mises à jour. Mon framework s'est mis à jour ainsi que Visual studio, et maintenant j'ai non seulement l'intellisense en anglais (bon, pas trop grave), mais surtout des phénomènes curieux, comme la disparition de mes contrôles personnalisés dans le designer, en phase de debuggage, qui réapparaissent si je ferme et que je réouvre la fenêtre form d'essais qui les contient

    Avant les mises à jour, ça fonctionnait nickel, il doit y avoir un bug dans ces updates.

    A+ et merci

    Claude

  6. #6
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    pour voir les attributs d'une propriété, il faut désassembler toute la propriété, pas juste ses accesseurs (get_*/set_*) (cf. image en pièce jointe)
    Images attachées Images attachées  

  7. #7
    Membre très actif
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    612
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2008
    Messages : 612
    Par défaut
    Salut
    ------

    Effectivement, maintenant ça fonctionne, merci.

    A+
    Claude

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 23/03/2012, 14h15
  2. Objet : modifier des attributs lors d'un évènement
    Par iluv dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 27/07/2009, 21h44
  3. [jQuery] Attribution d'évènement basique
    Par remi5 dans le forum jQuery
    Réponses: 2
    Dernier message: 23/11/2008, 21h04
  4. Attributs pour évènements
    Par DranDane dans le forum Windows Forms
    Réponses: 2
    Dernier message: 27/09/2008, 14h19
  5. Réponses: 3
    Dernier message: 14/03/2008, 17h04

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo