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 :

Evenement et contrôle désactivé


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre émérite
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2010
    Messages
    479
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2010
    Messages : 479
    Par défaut Evenement et contrôle désactivé
    Bonjour,
    mon problème est tout bête...
    J'ai remarqué que l'événement MouseOver n'est déclenché que si la souris reste un instant au dessus d'un contrôle activé (enable = true).

    Dans mon cas, le but est de faire apparaitre un tooltip personnalisé avec des boutons lors du survol de la souris sur un ToolStripMenuItem désactivé.
    Pourtant on remarque que le tooltiptext (tooltip par défaut) du ToolStripMenuItem apparait lors du MouseOver même si le contrôle est désactivé ! C'est bien qu'en interne Windows détecte cet event... ?!

    J’avoue être dans l'impasse
    Si quelqu'un a une solution ou une piste ?
    D'avance merci.

  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
    Sinon tu peux passer par ton formulaire pour récupérer le contrôle survolé par la souris, ça peut être un truc du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    private void Form_MouseMove(object sender, MouseEventArgs e)
    {
        Control control = GetChildAtPoint(e.Location);
        if (control != null && control is MonControl)
        {
            if (!control.Enabled)
            {
    	    //Afficher mon toolTip
            }
        }
    }

  3. #3
    Membre éclairé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2012
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2012
    Messages : 50
    Par défaut
    Citation Envoyé par lead8209 Voir le message
    Pourtant on remarque que le tooltiptext (tooltip par défaut) du ToolStripMenuItem apparait lors du MouseOver même si le contrôle est désactivé ! C'est bien qu'en interne Windows détecte cet event... ?!
    Non car le tooltip est défini au niveau du control même si ce control est activé ou désactive. Dans ce cas l’événement MouseOver n'a rien a voir.

  4. #4
    Membre émérite
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2010
    Messages
    479
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2010
    Messages : 479
    Par défaut
    Chamano : Oui j'avais vu cette solution sur le net mais j'ai essayé tellement de chose que peut-être que je l'ai trop vite balayée...

    djchou : Oui mais il me semble également que la propriété enable est définie au même niveau que l’événement MouseOver dans la classe de base ToolStripItem... C'est juste que le trouve "idiot" de désactiver tous les événements lorsque enable passe à false; Ce n'est pas le cas sur d'autres langages.

    Sinon j'ai eu une idée dans la nuit; certes qui demande un peu de boulot mais bon... Je pense que je vais définir mes propres états d'activation qui influent sur l'affichage du ToolTipMenuItem sans toucher à la propiété ebable. Donc l'item restera toujours enable; tous les events seront lancés; je vais juste simuler sont changement graphique (grisé dégrisé). Après il va falloir gérer au cas par cas les events comme par exemple click qui ne doivent-être déclenchés que si l'item est "actif"

  5. #5
    Membre émérite
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2010
    Messages
    479
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2010
    Messages : 479
    Par défaut
    Bon ça fonctionne;
    reste un micro léger détail : quelqu'un sait-il comment on peut changer la couleur de surbrillance due au passage du pointeur sur le contrôle ?
    Par défaut bleu sur les ToolStripMenuItem, je voudrais la rendre transparente pour faire comme s'il n'était pas surligné...

  6. #6
    Membre émérite
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2010
    Messages
    479
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2010
    Messages : 479
    Par défaut
    Voila le lien où j'ai trouvé ma solution : http://stackoverflow.com/questions/1...er-on-mouse-ov.

    A+

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

Discussions similaires

  1. [AC-2003] Changer la couleur de police/fond d'un contrôle désactivé ?
    Par [ZiP] dans le forum VBA Access
    Réponses: 2
    Dernier message: 26/01/2010, 15h38
  2. [AC-2000] Infobulle sur contrôle désactivé
    Par steps5ive dans le forum IHM
    Réponses: 2
    Dernier message: 13/10/2009, 19h00
  3. Couleur d'un contrôle désactivé
    Par vincent.le dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 03/09/2009, 15h13
  4. Evenements sur contrôles dynamiques
    Par BATCHOS CON TEQUILA dans le forum ASP.NET
    Réponses: 5
    Dernier message: 23/01/2009, 14h03
  5. Gerer les evenements de Contrôles créés dynamiquement
    Par celineSGH dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 29/12/2008, 02h25

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