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#

  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 ?

  7. #7
    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
    Comment je fais pour declencher un evenement en cliquant sur un bouton par exemple ?

  8. #8
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Par défaut
    Bah, tu l'appelles

    GenerateTextEventArgs eEA = new GenerateTextEventArgs("Compteur = " + i.ToString());
    OnTextChanged(this, eEA);

  9. #9
    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


    Voici mon code :

    2 form avec chacune un bouton :

    Form 1 :

    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
     
    public partial class Form1 : Form
        {
            private ClassEvent oClassEvent = new ClassEvent();
     
            public Form1()
            {
                oClassEvent.MonEventArgs += new ClassEvent.EventHandler(ClassEvent_MonEvent);       
     
                InitializeComponent();
            }
     
            private void Form1_Load(object sender, EventArgs e)
            {
            }
     
            private void button1_Click(object sender, EventArgs e)
            {
                new Form2().ShowDialog();
            }
     
            private void ClassEvent_MonEvent(object sender, EventArgs e)
            {
                this.Text = "EVENT";
            }
        }
    Form 2 :

    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 partial class Form2 : Form
        {
            public Form2()
            {
                InitializeComponent();
            }        
     
            private void button1_Click(object sender, EventArgs e)
            {
                //???
     
            }
        }
    Ma classe derivee de EventArgs

    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 MonEventArgs : EventArgs
    	{
    		private string myEventText = null;
     
            public MonEventArgs(string theEventText)
    		{			
    			if (theEventText == null) 
                    throw new NullReferenceException();
    			myEventText = theEventText; 
    		}
     
    		public string EventText
    		{
    			get { return this.myEventText; }
    		}	
    	}
    et la classe 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
    18
    19
     
    class ClassEvent
        {
            public delegate void EventHandler(Object sender, EventArgs e);
            public event EventHandler MonEventArgs;
     
            public ClassEvent()
            {
     
            }
     
            private void LancerMonEvent(object sender, EventArgs e)
            {
                if (this.MonEventArgs!= null)
                {
                    MonEventArgs(this, new System.EventArgs());
                }
            }
        }
    Que me manque t il pour que lorque je clique sur le bouton de la form 2 l evenement soit capte par la form1 ?


  10. #10
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Par défaut
    Hum.. je pense que tu mélanges un peu tout

    Je pense que ceci devrait t'aider à y voir plus clair

    http://freddyboy.developpez.com/dotnet/articles/events/

  11. #11
    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 Thomas Lebrun
    Hum.. je pense que tu mélanges un peu tout

    Je pense que ceci devrait t'aider à y voir plus clair

    http://freddyboy.developpez.com/dotnet/articles/events/
    Merci ...mais deja lu
    En plus le projet ne compile pas

  12. #12
    Rédacteur
    Avatar de SaumonAgile
    Homme Profil pro
    Team leader
    Inscrit en
    Avril 2007
    Messages
    4 028
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Team leader
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2007
    Messages : 4 028
    Par défaut
    Pour des événements simples, je fais en général dans la classe qui définit l'événement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    public EventHandler<MonEventArgsQuiHeriteDeEventArgs> Evenement;
     
    protected virtual void OnEvenement(MonEventArgsQuiHeriteDeEventArgs args)
    {
        if (null != Evenement)
            Evenement(this, args);
    }
     
    private void MaMethodeQuiDeclencheUnEvent()
    {
        OnEvenement(new MonEventArgsQuiHeriteDeEventArgs());
    }
    Besoin d'un MessageBox amélioré ? InformationBox pour .NET 1.1, 2.0, 3.0, 3.5, 4.0 sous license Apache 2.0.

    Bonnes pratiques pour les accès aux données
    Débogage efficace en .NET
    LINQ to Objects : l'envers du décor

    Mon profil LinkedIn - MCT - MCPD WinForms - MCTS Applications Distribuées - MCTS WCF - MCTS WCF 4.0 - MCTS SQL Server 2008, Database Development - Mon blog - Twitter

  13. #13
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Par défaut
    Si cela peut aider, voici le code d'une classe que j'ai créé :
    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
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    using System;
    using System.Collections.Specialized;
     
    namespace WindowsApplication1
    {
    	public delegate void DelegueEnvoisTCP(string message, string destinataire);
    	public delegate void DelegueEnvoisMail(string message, string[] logfiles, bool erreur);
    	public delegate void DelegueCreerLog(string contenu);
    	public delegate void DelegueChangeEtatAppel(string Etat);
    	public delegate void DelegueRedemarrerNoeud(bool ChangeConfig);
    	public delegate void DelegueArreterSupervision();
    	public delegate void DelegueDemarrerSupervision();
     
     
    	/// <summary>
    	/// Description résumée de Dispatcheur.
    	/// </summary>
    	public class Dispatcheur
    	{
    		public event DelegueEnvoisTCP EnvoisTCP;
    		public event DelegueChangeEtatAppel ChangeEtatAppel;
    		public event DelegueCreerLog CreerLog;
    		public event DelegueEnvoisMail EnvoisMail;
    		public event DelegueRedemarrerNoeud RedemarrerNoeud;
    		public event DelegueArreterSupervision ArreterSupervision;
    		public event DelegueDemarrerSupervision DemarrerSupervision;
     
    		public Dispatcheur()
    		{
    		}
     
    		public void DeclencheArreterSupervision()
    		{
    			ArreterSupervision();
    		}
     
    		public void DeclencheDemarrerSupervision()
    		{
    			DemarrerSupervision();
    		}
     
    		public void DeclencheEnvoisTCP(string message, string destinataire)
    		{
    			EnvoisTCP(message, destinataire);
    		}
     
    		public void DeclencheChangeEtatAppel(string Etat)
    		{
    			ChangeEtatAppel(Etat);
    		}
     
    		public void DeclencheCreerLog(string contenu)
    		{
    			CreerLog(contenu);
    		}
     
    		public void DeclencheEnvoisMail(string message, string[] logfiles, bool erreur)
    		{
    			EnvoisMail(message, logfiles, erreur);
    		}
     
    		public void DeclencheRedemarrerNoeud(bool ChangeConfig)
    		{
    			RedemarrerNoeud(ChangeConfig);
    		}
    	}
    }
    et le code que j'utilise pour ajouter une fonction au déléguer, et donc permettre l'exécution de cette fonction quand l'évenement est généré :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    NomInstanceDeLaClasseDispatcheur.ArreterSupervision +=new DelegueArreterSupervision(ArretSupervion);
     
    //Ne pas oublier la classe appele
    public void ArretSupervion()
    {
    }
    Et bien sur j'appelle la méthode "DeclencheArreterSupervision()" de dispatcheur pour déclencher l'événement. Tu peut l'appeler dans le code exécuté par le clique du bouton.

  14. #14
    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
    Salut

    Merci tlm.

    Est ce que c est dans le principe de ce que je vx faire que cela ne marche pas ?

  15. #15
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    499
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 499
    Par défaut
    Salut,

    en fait, on comprend pas tout...
    pourrait être un peu plus clair ?...


    qu'est-ce que tu veux faire là dedans :
    private void button1_Click(object sender, EventArgs e)
    {
    //???

    }
    ?...

    pour rappel : il s'agit de la fonction déclenchée quand tu vas cliquer sur le bouton 1 de ta form 2


    et qu'entends tu par :
    l evenement soit capte par la form1
    ?...

    quel évènement?

    parce que quand tu cliques sur le bouton1 de form2, tu as l'évènement 'click' de bouton1 qui est déclenché

    pour 'capter' un évènement comme tu dis, il faut y être abonné
    un abonnement, c'est çà :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    form1.click += new Form1.click(button1_click);
    qqch ds le genre, tu dois trouver ça dans le code généré par le compilateur

  16. #16
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    499
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 499
    Par défaut
    en fait, je crois que j'ai compris ce que tu voulais faire

    tu crois qu'en mettant une méthode
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    button1_Click(object sender, EventArgs e)
    dans ta form2,
    elle sera exécutée quand tu cliqueras sur le bouton1 de la form1 ?... non?
    mais ça marche pas comme ça...


    Reprenons depuis le début...

    y'a ça dans ta form1:
    private void button1_Click(object sender, EventArgs e)
    {
    new Form2().ShowDialog();
    }
    ça veut dire que quand tu cliques sur le bouton1 de form1, la form2 s'affiche;
    c'est ça?
    déjà, est-ce que ça marche ça?

    ensuite que veux tu faire exactement?

  17. #17
    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
    Salut

    Exact cela marche ...

    Ce que j aimrais faire c est creer mon propre evenement et le declencher (par un bouton ou autre) d'une form et pourvoir le recuperer dans une autre form ...


  18. #18
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    499
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 499
    Par défaut
    Salut,

    bon alors, allons y

    si tu veux créer ton propre évènement, il faut suivre ce modèle, en dérivant de EventArgs :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
        // en fait, ça c'est un EventArgs customisé, si tu veux véhiculer des infos particulières dans ton event
        public class MonEventArgs : EventArgs
        {
            // tu peux mettre des attributs
     
            public MonEventArgs ()
            {
            }
     
            // tu peux mettre un autre constructeur qui permet d'initialiser les attributs
        }
    ensuite dans la classe dans laquelle tu veux déclencher ton évènement, il faut l'event et le délégué :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    public class Form1 : Form
    {
            public delegate void MonDelegue(object sender, MonEventArgs e);
            public event MonDelegue MonEvent;
    }
    voilà,
    puis si tu veux déclencher ton évènement en cliquant sur un bouton, disons qu'il s'appelle button2,
    tu vas le déclencher dans la fonction de l'event 'Click' de button2
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    public class Form1 : Form
    {
        // ça c'est la fonction créé par le compilateur quand tu double cliques sur l'event 'Click' dans les propriétés de button1
        button2_Click(object sender, EventArgs e)
        {
            // tu prépares ton eventArgs
            MonEventArgs evtArgs = new MonEventArgs ();
            // tu envoies l'event :
            MonEvent(this, evtArgs);      
        }
    }
    voilà, il est lancé ton event...

    y'a plus qu'à le récupérer...
    si tu veux le faire dans la classe Form2
    il faut que ce soit elle qui instancie l'objet Form1

    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
     
    public class Form2 : Form
    {
        public Form1 f1;
     
        public Form2()
        {
             // tu instancies f1
             f1 = new Form1();
             f1.Show();
     
             // tu t'abonnes à son évènement et tu lui associe une méthode:
             f1.MonEvent += new Form1.MonDelegue(MaMethodeAssociee);
        }
     
        // ATTENTION : cette méthode doit avoir la même signature que MonDelegue
        // cette méthode sera exécutée à chaque fois qu'un évènement MonEvent sera lancé, c'est à dire quand tu cliqueras sur button2 de Form1
        public void MaMethodeAssociee(object sender, MonEventArgs e)
        {
            // voilà, tu fais ce que tu veux ici...
            // comme écrire un message dans une TextBox de Form2...
        }
    }
    bon, voilà,
    j'espère que tu vas t'en sortir avec ça...

    bon courage

  19. #19
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    499
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 499
    Par défaut
    ah, oui,
    par contre j'avais oublié que tu instanciais Form2 en cliquant sur button1...

    donc, tu peux pas instancier une Form1 ds Form2, comme je viens de te le dire...

    à la place,
    il faut que tu passe une instance de Form1 en argument du constructeur de Form2 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    public class Form2 : Form
    {
        public Form1 f1;
     
        public Form2(Form1 f1)
        { 
            this.f1 = f1;
     
            // tu t'abonnes tjs à son évènement et tu lui associe une méthode:
           f1.MonEvent += new Form1.MonDelegue(MaMethodeAssociee);
       }
    }
    et puis dans ta classe Form1, qaund tu instanciais Form2, il faut mettre ça maiintenant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    private void button1_Click(object sender, EventArgs e)
    {
        new Form2(this).ShowDialog();
        // pour que Form2 ait l'instance de Form1...
    }
    voilà...

  20. #20
    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 cela marche !

    Par contre le seul prob c est que je ne puisse pas generer l evenement , il faut le
    genere la ou il est declarer ... cad dans form1..cela ne marche pas dans form2

    Comment faire si l on vx pourvoir declencher un event de plusieurs
    endroits mais toujours le meme traitement, il faut un objet commun ?

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