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 :

décorer ses evenements.


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2005
    Messages
    700
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Juin 2005
    Messages : 700
    Par défaut décorer ses evenements.
    Bonjour.

    Je souhaiterai apporter la chose suivante à mon code :
    décorer certains events.

    Imaginons un classe Alert qui permettent d'associer un Titre à un Event, on pourra ensuite dans une UI permettre à l'utilisateur de choisir à quel event il souhaite s'abonner. De plus on pourra rechercher par reflexion, toutes les Alerte pour n'afficher dans l'UI que les alertes "humainement" interressantes, et non des event bas niveau.
    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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    public class Alert
        {
            private static List<int> s_titresHC = new List<int>();
            private String m_titre;
     
            public String Titre
            {
                get { return m_titre; }
            }
            private EventHandler m_event;
     
            public event EventHandler Event
            {
                add{m_event+= value;}
                remove { m_event -= value; }
     
            }
     
            public Alert(String titre, EventHandler evenement)
            {
                if (titre == null)
                    throw new ArgumentNullException("titre");
                if (titre == String.Empty)
                    throw new ArgumentException("titre cannot be empty");
                if (s_titresHC.Contains(titre.GetHashCode()))
                    throw new ApplicationException(String.Format("There is allready an Alert with that Title, change it.\r\nTitle : {0}", titre));
                if (evenement == null)
                    throw new ArgumentNullException("evenement");
                m_event = evenement;
                m_titre = titre;
                s_titresHC.Add(titre.GetHashCode());
            }
     
        }
    Oui mais mon probleme, c'est que cette technique ne fonctionne pas:
    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
    class Program
        {
            public static event EventHandler Pret;
     
            static void Main(string[] args)
            {
                Alert alerte = new Alert("Programme pret", Pret);
                alerte.Event += new EventHandler(OnPret);
                if (Pret != null)
                    Pret(null, new EventArgs());
            }
     
            public static void OnPret(object sender, EventArgs args)
            {
                Console.WriteLine("le programme est pret");
            }        
        }
    Lorsque je construit mon objet Alert, personne n'est abonné à l'event Pret, du coup le constructeur recoit un parametre null.

    Auriez vous des suggestions afin d'atteindre l'objectif?
    Peut etre que je fais fausse route, que je ne devrai pas passer par les events, et réinventer la roue avec le pattern observer...??...

  2. #2
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 528
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 528
    Par défaut
    Je n'ai pas compris grand chose mais pour les Event, ils peuvent être "décorés" de toute une série d'attribut comme s’ils sont visible dans le Designer, quel éditeur utiliser pour y associer une méthode au Design Time, une description (même localisé) etc...

    Pouvez-vous être plus clair sur votre problème initial, car vos explications sur votre choix de répondre au problème me semblent assez confuses.

Discussions similaires

  1. Réponses: 7
    Dernier message: 26/05/2011, 09h37
  2. Evenement Change
    Par PierDIDI dans le forum Composants VCL
    Réponses: 3
    Dernier message: 28/08/2002, 10h08
  3. Installer ses composants
    Par Geronimo dans le forum C++Builder
    Réponses: 14
    Dernier message: 18/06/2002, 14h51
  4. develloppement avec ORBit: service d'evenement
    Par belmontv dans le forum CORBA
    Réponses: 3
    Dernier message: 06/06/2002, 22h56
  5. Generation d'evenements a une date precise
    Par pascalzzz dans le forum MFC
    Réponses: 2
    Dernier message: 04/06/2002, 15h21

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