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 :

Empêcher le focus d'un user control


Sujet :

Windows Forms

  1. #1
    Futur Membre du Club
    Inscrit en
    Avril 2009
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 6
    Points : 6
    Points
    6
    Par défaut Empêcher le focus d'un user control
    Bonjour à tous,

    J'ai créé un composant custom, purement graphique, donc aucune intéraction avec l'utilisateur si ce n'est sa visualisation.

    Or, je voudrais empêcher ce composant d'avoir le focus, car ca n'apporte rien du tout. J'ai essayé beaucoup de chose, dont le test du message 0x7, mais rien a faire, quand je clique sur mon composant, la Form lui donne le focus.

    Quelqu'un aurait-il une solution ?

    Merci beaucoup.

  2. #2
    Membre averti Avatar de blade159
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2004
    Messages
    226
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mars 2004
    Messages : 226
    Points : 332
    Points
    332
    Par défaut
    tu pourrais éventuellement te désabonner à l'évènement en question lors de l'initialisation de ton composant

    VB.NET
    RemoveHandler monControl.monEvent, AddressOf monEventHandler


    C#
    monControl -= monEvent;
    Si question répondue, clique sur

  3. #3
    Futur Membre du Club
    Inscrit en
    Avril 2009
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 6
    Points : 6
    Points
    6
    Par défaut
    Merci de ta réponse.

    En effet je n'y avais pas pensé, mais cela ne revient-til pas au même que d'overrider ces methodes et ne mettre qu'un corps vide ? J'ai overridé à peut pres tout ce que je pouvais, intercepté les Messages==7 (qui gèrent le focus), rien à faire.

    Une solution radicale consiste à mettre mes composants en "disabled", ce qui ne nuit pas à leur affichage. Mais j'ai d'autres composants qui ont besoin juste d'un petit clic, et ceux la ne réagissent bien sûr plus en disabled...

    Comment font les composants windows pour faire ca bien ? Par exemple, les icones placés sur un ToolStrip réagissent exactement comme je voudrais : on peut intéragir avec mais ils ne prennent jamais le focus.

    Merci pour ton aide en tout cas ! Si toi ou quelqu'un d'autre à des idées...

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 71
    Points : 56
    Points
    56
    Par défaut
    Je crois que le plus simple est de faire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MonControl.Focusable = false;

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

Discussions similaires

  1. [C#]liste de choix dans une propriété d'un user control
    Par LeDeveloppeurDotNet dans le forum Windows Forms
    Réponses: 2
    Dernier message: 07/10/2005, 12h41
  2. [C#] User control
    Par Verboz dans le forum ASP.NET
    Réponses: 4
    Dernier message: 27/04/2005, 22h46
  3. [C#] User Control dynamic
    Par Erakis dans le forum ASP.NET
    Réponses: 10
    Dernier message: 21/10/2004, 18h54
  4. [C#] DateTimePicker web user control
    Par titi29 dans le forum ASP.NET
    Réponses: 8
    Dernier message: 29/06/2004, 18h38
  5. [VB.NET] Provoquer le rechargement d'un user control..
    Par didoboy dans le forum ASP.NET
    Réponses: 7
    Dernier message: 30/04/2004, 14h17

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