none
Evenement DoubleClick TrackBar RRS feed

  • Question

  • Bonjour,

    Mon probleme : j'aimerai faire un double click sur un trackbar (composant par défaut de visual et non personnalisé) et executer une méthode.

    Mon souci : je ne trouve pas l'évènement DoubleClick dans les propriétés TrackBar sous visual. Idem pour MouseDoubleClick.

    J'aimerai savoir s'il existe une solution pour que je puisse utiliser le doubleclick d'une trackbar.

    PS : j'ai vu sur le site msdn que le composant trackbar disposait bien de l'évènement DoubleClick mais surement caché de la liste des propriétés...
    lien : http://msdn.microsoft.com/fr-fr/libr...r_members.aspx

    J'aimerai pouvoir utiliser un DoubleClick sur un trackbar. Une aide serait la bienvenue !

    je précise également que je code en C++/CLI managé

    Merci Beaucoup à celui ou celle qui me sauvera la vie ^^

    Bonne journée

    PS : j'ai vu qu'on pouvait rajouter les évènements dans un composant mais pour cela faut aller dans le code du composant or ça je ne sais pas ou faut aller pour modifier...
    vendredi 1 mai 2009 08:43

Toutes les réponses

  • Tu as bien lu et bien vu.

    Reflector donne ces informations :
    [Browsable(false), EditorBrowsable(EditorBrowsableState.Never)]
    public event EventHandler DoubleClick
    
    Donc, c'est normal de ne pas le voir dans la fenêtre des propriétés (voir les Attribut sur l'évènement)

    Rien ne t'empêche de l'utiliser dans ton code.
    C'est juste une limitation du mode "Design" de VS. 
    Paul Bacelar, MVP VC++
    vendredi 1 mai 2009 14:42
    Modérateur
  • Yes !

    j'ai fait comme vous l'avez dit, résultat ça ne passe jamais dans l'évènement

    Code :
    private: System::Void Form1_Load(System::Object^  sender, System::EventArgs^  e) {
    this->TB_PROJ1->DoubleClick += gcnew System::EventHandler(this, &Form1::TB_PROJ1_DoubleClick);
    }
    private: System::Void TB_PROJ1_DoubleClick(System::Object^ sender, System::EventArgs^ e){
    MessageBox::Show("youpi");
    }
    vendredi 1 mai 2009 15:20
  • Après avoir utilisé Spy++, il devient évident que le contrôle Trackbar .NET (comme le Natif d'ailleurs), n'utilise pas le style "CS_DBLCLKS" lors de la création de la classe de fenêtre (classe au sans Win32).
    Il toujours possible de faire une nouvelle classe de fenêtre Win32 qui utilise ce style, mais cela représente beaucoup de boulot.
    Si j'était vous, je créerais un control composite (une trackbar et un panel transparent qui serait en permanence au dessus de la trackbar et qui ne serait en charge que d'intercepter les double-clicks et de renvoyer les autres messages vers la trackbar.

    Il faudrait juste vérifier que le panel transparent soit configurable pour intercepter les double-clicks.

    Paul Bacelar, MVP VC++
    dimanche 3 mai 2009 22:34
    Modérateur