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 :

Enum + Event Handler


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Avril 2006
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Portugal

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2006
    Messages : 55
    Par défaut Enum + Event Handler
    Salut a tous

    Je voudrai savoir si c'est possible de crée un Event Handler onChange sur un enum.

    Par exemple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    public enum OperationMode
    {
         add = 0,
         edit = 1,
         del = 2,
    }
    et a chaque foi que je efectue un changement de variable, il me execute un event OnChange du enum.

    Merci d'avance! :-)

  2. #2
    Membre expérimenté
    Avatar de StormimOn
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2005
    Messages
    2 593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Sarthe (Pays de la Loire)

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

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 593
    Par défaut
    Directement sur une énumération non, par contre tu peux créer une classe pour réaliser cette logique.

    Par exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    public class EnumWithEvent
    {
        private Enum _value;
     
        public Enum Value
        {
            get { return _value; }
            set
            {
                if (!Enum.Equals(_value, value))
                {
                    _value = value;
                    OnValueChanged();
                }
            }
        }
     
        public event EventHandler ValueChanged = delegate { };
     
        protected virtual void OnValueChanged()
        {
            ValueChanged(this, EventArgs.Empty);
        }
    }
    A l'utilisation
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    EnumWithEvent e = new EnumWithEvent();
    e.ValueChanged += EnumWithEventValueChanged;
    ...
    // On change la valeur ce qui déclenche l'événement ValueChanged
    e.Value = OperationMode.Add;
    On peut en faire une classe générique pour que cela fonctionne avec autre chose que des énumérations. Ca donnerait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    public class ValueWithEvent<T> 
    {
        private T _value;
     
        public T Value
        {
            get { return _value; }
            set
            {
                if (!object.Equals(_value, value))
                {
                    _value = value;
                    OnValueChanged();
                }
            }
        }
     
        public event EventHandler ValueChanged = delegate { };
     
        protected virtual void OnValueChanged()
        {
            ValueChanged(this, EventArgs.Empty);
        }
    }
    A l'utilisation
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    ValueWithEvent<OperationMode> e = new ValueWithEvent<OperationMode>();
    e.ValueChanged += ValueWithEventValueChanged;
    ...
    // On change la valeur ce qui déclenche l'événement ValueChanged
    e.Value = OperationMode.Add;

Discussions similaires

  1. Réponses: 6
    Dernier message: 27/08/2007, 13h37
  2. event handler et accès anonyme
    Par @melie dans le forum SharePoint
    Réponses: 5
    Dernier message: 25/08/2007, 19h17
  3. Réponses: 1
    Dernier message: 15/08/2007, 15h45
  4. Birt Event Handler
    Par medbass dans le forum BIRT
    Réponses: 8
    Dernier message: 07/08/2006, 14h51
  5. Problème avec event handler
    Par MASSAKA dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 15/11/2005, 09h31

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