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 :

Difficultés avec les Events


Sujet :

C#

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 18
    Par défaut Difficultés avec les Events
    Bonjour à tous,

    Je viens solliciter votre aide car malgré quelques lectures sur le sujet, je n'arrive pas a résoudre mon problème.

    J'ai un programme en C# avec une classe principal et une classe secondaire (c'est un classe qui crée un Control personnalisé).

    J'appelle dans ma classe principal la création d'un nouvel élément ( de ma classe secondaire):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Panel panel_Accueil = new InterfaceAccueil(tp_accueil.Width,tp_accueil.Height-40);
               tp_accueil.Controls.Add(panel_Accueil);
    Jusque là tout va, la classe crée bien le composant, vérifie que les champs rentrés correspondes a ce que j'ai dans ma base de données etc....

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
                connexion requeteAuthen = new connexion();
                requeteAuthen.requete("SELECT Password FROM Users WHERE ID='" + box_id.Text + "'");
     
                if (box_pass.Text == requeteAuthen.getStringRequete())
                {
     
                    box_pass.Text = "";
                    box_id.Text = "";
     
                }
    Mon problème est le suivant: Je n'arrive pas a crée d'évènements qui "rendent" la main, ou qui signale au programme principal que l'authentification à réussi... A chaque fois il me dit qu'il ne connait pas l'évènement ( que j'ai moi même crée)...


    Qu'ai je loupé?

    Merci d'avance

  2. #2
    Membre émérite Avatar de chamamo
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    588
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 588
    Par défaut
    Tu as tout mis sauf le code de ton évènement qui est le sujet de ton post

    Tu l'utilises comment ton évènement?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 18
    Par défaut
    Je ne l'ai pas mit justement parce qu'il ne fait rien du tout... Je le met puisque tu me le demande ^^


    Voici le début de ma classe secondaire avec la création de l'event et du délégué
    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
     
    namespace Pepin2
    {
        public delegate void AuthenEventHandler(object sender, EventArgs e);
     
        class InterfaceAccueil :Panel
        {
     
            public event AuthenEventHandler OnAuthenDone;
     
            Button btn_connection;
     
     
            public InterfaceAccueil(int width,int height)
            {
              //code
     
                btn_connection = new Button();
                btn_connection.BackColor =  System.Drawing.SystemColors.InactiveCaptionText;
                btn_connection.FlatAppearance.BorderColor = System.Drawing.Color.LightSkyBlue;
                btn_connection.FlatAppearance.BorderSize = 0;
                btn_connection.FlatAppearance.MouseDownBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(128)))), ((int)(((byte)(255)))), ((int)(((byte)(255)))));
                btn_connection.Location = new System.Drawing.Point(365, 70);
                btn_connection.Name = "btn_connection";
                btn_connection.Size = new System.Drawing.Size(114, 52);
                btn_connection.Text = "Connexion";
                btn_connection.UseVisualStyleBackColor = false;
                panel_Connexion.Controls.Add(btn_connection);
                btn_connection.Click += new System.EventHandler(btn_connection_Click);
            }
     
           public void btn_connection_Click(object sender, EventArgs e)
            {
                connexion requeteAuthen = new connexion();
                requeteAuthen.requete("SELECT Password FROM Users WHERE ID='" + box_id.Text + "'");
     
                if (box_pass.Text == requeteAuthen.getStringRequete())
                {
     
                    EventArgs PersonalEvent = new EventArgs();
                    if (PersonalEvent != null) OnAuthenDone(this, PersonalEvent);
                    box_pass.Text = "";
                    box_id.Text = "";
     
                }
                else
                {
                    label_fb.Text = "Mauvaise Authentification.Vérifiez votre Identifiant/Mot de passe";
                }
            }

    et enfin l'écouteur dans le programme principal:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
               Panel panel_Accueil = new InterfaceAccueil(tp_accueil.Width,tp_accueil.Height-40);
               tp_accueil.Controls.Add(panel_Accueil);
               panel_Accueil.OnAuthenDone += new EventHandler(authentificationDone);

  4. #4
    Membre émérite Avatar de chamamo
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    588
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 588
    Par défaut
    voila tu as bien fait de mettre le code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    EventArgs PersonalEvent = new EventArgs();
    if (PersonalEvent != null) OnAuthenDone(this, PersonalEvent);
    tu testes un evenement que tu viens de créé, alors que tu dois tester ta variable OnAuthenDone si elle est null, mais bon ce n'est pas ça qui bloque.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (OnAuthenDone!= null) OnAuthenDone(this, PersonalEvent);
    en suite l'utilisation:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    InterfaceAccueil panel_Accueil = new InterfaceAccueil(tp_accueil.Width,tp_accueil.Height-40);
               tp_accueil.Controls.Add(panel_Accueil);
               panel_Accueil.OnAuthenDone += new EventHandler(authentificationDone);
    ton evenement dans la classe InterfaceAccueil tu le déclare en tant que AuthenEventHandler, tu devrais mettre:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    InterfaceAccueil panel_Accueil = new InterfaceAccueil(tp_accueil.Width,tp_accueil.Height-40);
               tp_accueil.Controls.Add(panel_Accueil);
               panel_Accueil.OnAuthenDone += new AuthenEventHandler(authentificationDone);

    je n'ai pas testé, teste et tiens moi au courant.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 18
    Par défaut
    Merci de ta réponse rapide.

    J'ai fait les modifications que tu m'as recommandé mais l'erreur qui sort est toujours la même ( je ferais bien de la préciser d'ailleurs)

    'System.Windows.Forms.Panel' ne contient pas de définition pour 'OnAuthenDone'

    Merci de ton aide

  6. #6
    Membre émérite Avatar de chamamo
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    588
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 588
    Par défaut
    bah oui regarde bien mon code comment j'instancie le control

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    InterfaceAccueil panel_Accueil
    au lieu de :

    j'avais oublié de préciser ton erreur.

    sinon tu peux garder ton code en castant ton objet, tu fais:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Panel  panel_Accueil....;
    .....
    ((InterfaceAccueil )panel_Accueil).OnAuthenDone += new EventHandler(authentificationDone);

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 18
    Par défaut
    Bwaaa ^^ bah Merci Encore une fois je me fais avoir par un petit mot Je suis frustré ^^...


    Merci beaucoup pour ton aide... Ça fonctionne à la perfection

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

Discussions similaires

  1. Quelques difficultés avec les events
    Par Atow57 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 11/12/2009, 13h46
  2. Difficultés avec les "attached events"
    Par SuprazZz dans le forum Windows Presentation Foundation
    Réponses: 0
    Dernier message: 28/12/2008, 13h51
  3. Difficulté avec les Radio button
    Par toitonline dans le forum Interfaces Graphiques
    Réponses: 8
    Dernier message: 17/04/2007, 17h58
  4. [C#] Difficulté avec les catch
    Par Roach- dans le forum ASP.NET
    Réponses: 9
    Dernier message: 31/01/2006, 17h57

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