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 :

[C#] Désinscription "dynamique" à un évènement (lors de son appel)


Sujet :

Windows Forms

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 26
    Points : 19
    Points
    19
    Par défaut [C#] Désinscription "dynamique" à un évènement (lors de son appel)
    Je crée une classe interface qui devra gérer toutes les propriétés d'interface de mon appli. Pour des raisons de tests, j'essaye lors d'un évènement GotFocus sur un textobx d'appeller une fonction de ma DLL d'interface (justement nommée gotFocus)

    L'idée est de faire un cast du sender et d'affecter les bonnes valeurs, et dans le cas d'un type non pris en charge de désabonner le controle de l'évènement (pour éviter les appels inutiles)

    Mais ca ne marche pas (j'ai rajouté une ligne aussi lorsque c'est un textbox pour être sur que c'était pas le cast en control qui foirait)!

    Des idées ?

    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
     
    namespace NoyauDLL
    {
        public class Interface
        {
            /// <summary>Couleur d'arrière plan pour les contrôles ayant le focus</summary>
            private static Color gotFocusColor;
            /// <summary>Couleur d'arrière plan pour les contrôles n'ayant pas le focus</summary>
            private static Color lostFocusColor;
     
            /// <summary>
            ///     Initialisation de la classe static Interface.
            ///     Charge les valeurs des variables (entre autre : couleurs de fond)
            /// </summary>
            static Interface()
            {
                gotFocusColor = Color.FromArgb(180, 226, 239);
                lostFocusColor = Color.FromArgb(255, 255, 255);
            }
     
            /// <summary>
            ///     Gère la propriété GotFocus des contrôles présents sur la fenêtre.
            ///     Si le contrôle n'est pas un type pris en charge par la fonction, elle désabonne le contrôle de l'évènement GotFocus sur la fonction afin de ne plus effectuer d'appels inutiles dans le futur.
            /// </summary>
            /// <param name="sender">Objet ayant déclenché l'évènement</param>
            /// <param name="args">Arguments & paramètres relatifs à l'évènement</param>
            public static void gotFocus(object sender, System.EventArgs args)
            {
                // on récupère le type de l'objet ayant déclenché l'évènement
                // on le cast puis on modifie la propriété de fond
     
                if (sender.GetType() == typeof (TextBox))
                {
                    ((TextBox)sender).BackColor = gotFocusColor;
                    ((TextBox)sender).GotFocus -= new EventHandler(NoyauDLL.Interface.gotFocus);
                    return;
                }
     
                // si on est là c'est qu'on ne gère pas ce type de contrôle donc on désabonne l'objet
                ((Control)sender).GotFocus -= new EventHandler(NoyauDLL.Interface.gotFocus);
            }
     
     
     
     
     
        }
    }

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 26
    Points : 19
    Points
    19
    Par défaut
    bon je dois encore examiner le code mais maintenance ca semble marcher...
    comprenne qui pourra

Discussions similaires

  1. Réponses: 1
    Dernier message: 20/09/2012, 16h04
  2. [xsl]simuler le mecanisme OO de "liaison dynamique"
    Par philemon_siclone dans le forum XSL/XSLT/XPATH
    Réponses: 10
    Dernier message: 19/12/2003, 12h34

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