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

VB.NET Discussion :

OnLeave sur Usercontrol


Sujet :

VB.NET

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    169
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 169
    Points : 100
    Points
    100
    Par défaut OnLeave sur Usercontrol
    Bonjour,

    J'ai un contrôle utilisateur comportant 1 Textbox & 1 bouton. Je veux pouvoir générer une action quand il perd le focus.
    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 MyControl
        Inherits UserControl
     
        Protected Overrides Sub OnEnter(e As EventArgs)
            MyBase.OnEnter(e)
            MessageBox.Show("enter")
        End Sub
     
        Protected Overrides Sub OnLeave(e As EventArgs)
            MyBase.OnLeave(e)
            MessageBox.Show("leave")
        End Sub
    ....etc
    J'ai placé ce UserControl sur une forme avec d'autres contrôles.
    Si je clique dans Usercontrol.Textbox , je reçois bien le msg "enter".
    Si je clique ensuite sur un espace vide de la forme, je n'ai pas le msg "leave" . Par contre, si je clique sur un autre contrôle de cette forme, je reçois bien le msg "leave"

    Merci de m'éclairer pour résoudre ce problème.

    Olivier

  2. #2
    Membre expert
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2013
    Messages
    1 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Octobre 2013
    Messages : 1 563
    Points : 3 404
    Points
    3 404
    Par défaut
    Le leave n'est déclenché que lorsque ton contrôle perd le focus.. et donc qu'un autre contrôle prend le focus.

    Le comportement est somme toute logique

    Après faut voir si tu n'a pas moyen de forcer le focus sur un autre contrôle lorsque ton formulaire parent est sélectionné, mais ça semble pas joli-joli.. Quel est le but de la manœuvre?

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    169
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 169
    Points : 100
    Points
    100
    Par défaut
    Je pensais qu'en cliquant sur la Forme contenant le UserControl, elle même prenait le focus.

    Pour expliquer ce UserControl, quand son bouton est cliqué, il affiche un texte (création en dynamique d'un Label qui sera ajouté à la Forme). Si je clique ailleurs que sur le Usercontrol, je veux faire disparaitre ce Label (c'est en fait comme le contrôle DateTimePicker: si le panneau calendrier est affiché et que l'utilisateur clique ailleurs que dessus, ce panneau disparait)

    Merci

  4. #4
    Membre expert
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2013
    Messages
    1 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Octobre 2013
    Messages : 1 563
    Points : 3 404
    Points
    3 404
    Par défaut
    Citation Envoyé par zitoune92 Voir le message
    Je pensais qu'en cliquant sur la Forme contenant le UserControl, elle même prenait le focus.
    Tu peux essayer avec l'événement LostFocus (je n'ai pas testé de mon côté..)

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    169
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 169
    Points : 100
    Points
    100
    Par défaut
    Je viens de m’apercevoir que le Leave n'est de toutes façon pas déclenché en cas de click sur la forme pour les composants du genre Panel. Donc cette méthode n'est peut être pas appropriée.
    Je me demande si une "capture" de l'évenement click de la souris ne serait pas la solution? On détecte un click de souris même s'il ne se produit pas sur le UserControl. Si les coordonnées sont en dehors du UserControl, alors c'est un "LostFocus".
    Mais là ça se complique pour moi

    Merci

  6. #6
    Membre expert
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2013
    Messages
    1 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Octobre 2013
    Messages : 1 563
    Points : 3 404
    Points
    3 404
    Par défaut
    Le LostFocus ne fonctionne pas?

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    169
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 169
    Points : 100
    Points
    100
    Par défaut
    Pas du tout. C'est étonnant car, même si ce n'est pas parfait, le Onleave produit quelque chose au moins...

Discussions similaires

  1. [C#]Focus sur usercontrol
    Par ClaudeBg dans le forum Windows Forms
    Réponses: 1
    Dernier message: 04/08/2008, 21h11
  2. RightToLeft sur UserControl
    Par Danyel dans le forum VB.NET
    Réponses: 4
    Dernier message: 30/03/2008, 03h10
  3. Focus sur usercontrol
    Par Mcthief dans le forum Windows Forms
    Réponses: 1
    Dernier message: 14/02/2008, 13h24
  4. En faisant OnEnter / OnLeave sur TButton : changer Couleur
    Par kerotan dans le forum Composants VCL
    Réponses: 2
    Dernier message: 24/12/2007, 10h05
  5. [toolboxbitmap] icone sur usercontrol
    Par Pol63 dans le forum VB.NET
    Réponses: 2
    Dernier message: 24/07/2007, 09h54

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