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

C# Discussion :

Generer un evenement perso


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé Avatar de Seth77
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2005
    Messages
    1 448
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 448
    Par défaut Generer un evenement perso
    Salut

    Voici ma class d evenement :

    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
     
    public class GenerateTextEventArgs : EventArgs
    	{
    		private string myEventText = null;
     
            public GenerateTextEventArgs(string theEventText)
    		{			
    			if (theEventText == null) 
                    throw new NullReferenceException();
    			myEventText = theEventText; 
    		}
     
    		public string EventText
    		{
    			get { return this.myEventText; }
    		}	
    	}

    et voici mon delegue que j ai declarer dans une form :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    public delegate void TextGeneratedEventHandler(object sender, GenerateTextEventArgs e);
    public event TextGeneratedEventHandler OnTextChanged;
    et la creation de l evenement que j ai mis dans un bouton :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    GenerateTextEventArgs eEA = new GenerateTextEventArgs("Compteur = " + i.ToString());
    if (eEA != null) OnTextChanged(this, eEA);
    Que me manque t il pour que cela marche ?

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    652
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 652
    Par défaut
    Citation Envoyé par Seth77
    Que me manque t il pour que cela marche ?
    Nous dire ce qui ne marche pas une fois que tu auras essayé ? :)

  3. #3
    Membre éprouvé Avatar de Seth77
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2005
    Messages
    1 448
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 448
    Par défaut
    Citation Envoyé par Maniak
    Nous dire ce qui ne marche pas une fois que tu auras essayé ?
    Une exception sur le delegue qui est a null ....

    J aimerais generer mon evenement perso ; pour le recuperer, par exemple, dans une autre form.

  4. #4
    Membre émérite
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    652
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 652
    Par défaut
    C'est pas qu'il te faut mais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (OnTextChanged != null)
    Si personne ne s'est attaché à ton évènement, forcément ça va pas aller.

    Sinon, pas de 'On' dans les noms d'évènements, juste TextChanged, et tu peux utiliser EventHandler<GenerateTextEventArgs> au lieu de te créer ton propre delegate.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    32
    Détails du profil
    Informations personnelles :
    Âge : 61
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 32
    Par défaut
    Salut ...

    pour moi il manque la déclaration de l'écoute d'évenement...

    donc, dans la classe qui lance l'event ...

    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
     
    public class MaClasseA 
        {
            public delegate void EventHandler(Object sender, EventArgs e);
            public event EventHandler MonEvent;
     
            public MaClasseA()
            {
            }
            private void LancerMonEvent(object sender, EventArgs e)
            {
                if (this.MonEvent!= null)
                {
                    MonEvent(this, new System.EventArgs());
                }
            }
        }
    et dans la classe qui ecoute l'event ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
     
     
    public class MaClasseB 
        {
            private MaClasseA oMaClasseA = new MaClasseA ();
            public MaClasseB()
            {
                oMaClasseA.MonEvent += new MaClasseA.EventHandler(MaClasseA_MonEvent);
            }
            private void MaClasseA_MonEvent(object sender, EventArgs e)
            {
                //Traitement de l'event
            }
    voila, j'espere que ceci te servira ;-)

  6. #6
    Membre éprouvé Avatar de Seth77
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2005
    Messages
    1 448
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 448
    Par défaut
    Merci ...

    Donc si j ai bien compris ; il faut :
    1 - une classe correspondant a l evenement derivee de EventArgs
    2 - une classe qui lance l evenement avec un deleguate et un event
    3 - une classe qui ecoute l evenement en utilisant une instance de (2)

    Correcte ?

Discussions similaires

  1. Generer un evenement clavier
    Par Razor620 dans le forum C++
    Réponses: 8
    Dernier message: 01/04/2009, 22h06
  2. Générer un évenement
    Par the big ben 5 dans le forum Delphi
    Réponses: 5
    Dernier message: 06/11/2006, 09h18
  3. [C#2.0] Declenchement d'evenement perso
    Par chnew dans le forum Windows Forms
    Réponses: 4
    Dernier message: 28/02/2006, 20h07
  4. [VB]Generer un evenement click vers une autre application
    Par vijeo dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 14/02/2006, 11h22
  5. develloppement avec ORBit: service d'evenement
    Par belmontv dans le forum CORBA
    Réponses: 3
    Dernier message: 06/06/2002, 22h56

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