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 :

ComboCheckedListBox : Fermer la liste déroulante


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 11
    Par défaut ComboCheckedListBox : Fermer la liste déroulante
    Bonjour,

    Je veux créer un comboCheckedListBox : il ressemble en tout point à un Date&TimePicker MAIS il ouvre une ListBox à cases à cocher ! (pour ceux qui connaissent MS Reporting Services, c'est le même que je veux, le "multi-value").

    J'ai donc créé un UserControl "ComboCheckedListBox", et un Form "CheckedListBox". J'ai presque réussi à faire ce que je veux, MAIS je ne parviens pas à gérer proprement sa fermeture : j'ai utilisé l'événement "Deactivate" du Form, mais ça ne fonctionne pas (si en fait, mais uniquement durant le test par visual express...).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
        Private Sub CheckedListBox_Deactivate(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Deactivate
            'On ferme le userControl si on sort du cadre + celui de son parent
    
    If (MousePosition.X < Me.Left) Or (MousePosition.X > (Me.Left + Me.Width)) Or (MousePosition.Y < (Me.Top - MonCombo.Height)) Or (MousePosition.Y > Me.Top + Me.Height) Then
    Me.Hide()
    End If
    End Sub
    Mon contrôle ouvre bien le form, mais dès que je clique à côté ou que je change de fenêtre (côté windows), ce désagréable Form reste là, planté au milieu, au lieu de se fermer bien gentiment !

  2. #2
    Membre émérite Avatar de methylene
    Profil pro
    Inscrit en
    Février 2010
    Messages
    659
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2010
    Messages : 659
    Par défaut
    Salut,

    Pour avoir utilisé plusieurs fois et en vain les méthodes Left, Right, Top et Bottom d'un contrôle, je peux te dire qu'elles n'ont jamais fonctionné avec moi, étrangement le contrôle se retrouvait à pétaouchnok.

    Utilise plutôt les coordonnées en pixels.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    If (Talocbordgauche < MousePosition.X < Talocbordgauche + toncontrole.width) And (Talocbordhaut < MousePosition.Y < Talocbordhaut +toncontrole.height)
     
    toncontrole.Hide()
     
    End If

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 11
    Par défaut
    En fait c'est surtout l'événement qui me gêne (il ne se déclenche pas), mais je note ! Une idée sur comment gérer la fermeture de mon listBox sur click à l'extérieur de mon usercontrol ?

  4. #4
    Membre Expert Avatar de mactwist69
    Homme Profil pro
    Développement VB.NET
    Inscrit en
    Janvier 2007
    Messages
    1 707
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développement VB.NET
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 707
    Par défaut
    Et bien tout dépend comment tu as déclarer cette fenêtre. Si c'est en modale (avec un showdialog) alors pas le choix, tu dois lui faire un CLose ou un Dispose.

    Sinon, si tu as fais un juste un Show, alors hide devrait fonctionner (si ce que tu veux c'est cacher et non fermer).

    Pour l'évènement, tu peux prendre un Click sur ton formulaire. Utiliser HitTestInfo et le confronter avec les coordonnées de ta fenêtre comme tu faisais.

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 11
    Par défaut
    Je pense me faire mal comprendre : je ne fais pas une fenêtre mais un contrôle utilisateur (réutilisable). Ce que je veux, c'est trouver quel événement utiliser pour savoir lorsque j'en sors ET que je clique ailleurs.

    Mon gros problème, c'est que ce contrôle sera utilisé dans des forms, mais tant que ça n'est pas fait, je ne vois pas comment lancer mon code pour fermer la ListBox (form) de mon userControl.

  6. #6
    Membre Expert Avatar de mactwist69
    Homme Profil pro
    Développement VB.NET
    Inscrit en
    Janvier 2007
    Messages
    1 707
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développement VB.NET
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 707
    Par défaut
    C'est donc un control que tu ajoutes dynamiquement a ton formulaire... Et que tu mets au milieu?

    Quel est le code qui te permet d'ajouter ce control? (ça aidera)

    Et justement, pourquoi ne pas créer un formulaire qui ne contiendra que ce control? La gestion du formulaire me semble plus facile... A moins qu'il y ai une raison?

Discussions similaires

  1. [LibreOffice][Base de données] Liste déroulante, Minimiser appli, Compacter et fermer BDD
    Par El Bosc dans le forum OpenOffice & LibreOffice
    Réponses: 0
    Dernier message: 06/12/2013, 18h44
  2. [XL-2010] Fermer la liste déroulante du combobox à la fin de DropButtonClick
    Par bastou93 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 25/07/2011, 13h29
  3. liste déroulante avec session
    Par leeloo076 dans le forum ASP
    Réponses: 3
    Dernier message: 19/03/2004, 11h01
  4. liste déroulante en ASP vbscript
    Par leeloo076 dans le forum ASP
    Réponses: 9
    Dernier message: 17/03/2004, 16h42
  5. Listes déroulantes liées entre elles
    Par denisC dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 27/07/2002, 15h53

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