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 :

Créer un controle ressemblant à TrackBar


Sujet :

VB.NET

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    98
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2008
    Messages : 98
    Par défaut Créer un controle ressemblant à TrackBar
    Bonjour à tous !
    Je souhaiterais créer ce que j'appelle un contrôle "IntervalBar" qui ressemblerait à une trackbar, mais avec 2 slider ! Le problème c'est que je n'y arrive pas du tout, je sais même pas si je peux faire ça en faisant hériter mon propre contrôle des TrackBar, ni même quel type de projet je dois créer sous Visual Studio (les avis divergent entres les livres et internet) ...
    Donc c'est le flou en fait !

    Si quelqu'un pouvait m'aider, me donner une piste ou quelque chose sur lequel je pourrais me baser ça serait vraiment gentil !

    Merci à vous !

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Tu veux un truc comme ça en fait ?

    Si c'est en Windows Forms ça va être galère à faire toi-même, tu gagneras du temps en utilisant un contrôle existant (il y en a un ici). En WPF ce serait plus facile...

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    98
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2008
    Messages : 98
    Par défaut
    Oui c'est exactement ca !!! Merci je n'avais pas pensé à utiliser le mot clé Range, est ce que je peux l'utiliser même s'il a été fait en C#?

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par AliHome Voir le message
    est ce que je peux l'utiliser même s'il a été fait en C#?
    Oui bien sûr, ça reste du .NET
    Télécharge la DLL, et ajoute une référence à cette DLL dans ton projet

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    98
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2008
    Messages : 98
    Par défaut
    Mmmh bizarre, j'ai le message d’erreur en pj quand j'ajoute le controle sur une form :
    Images attachées Images attachées  

  6. #6
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Bizarre... Quelle version de Visual Studio tu utilises ?

    Essaie de recompiler le contrôle à partir des sources, ça suffira peut-être à régler le problème...

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    98
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2008
    Messages : 98
    Par défaut
    2010, oui j'ai fait ça justement après avoir eu le bug, ça change rien...
    Sinon, tu penses que je pourrais utiliser quel controle "de base" pour faire ce que je souhaite ? C'est à dire saisir un intervalle de temps en secondes.

    Exemple : Temps max définit ailleurs = 120 secondes
    --> pouvoir choisir l'intervalle de temps 8 à 10 secondes.

  8. #8
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par AliHome Voir le message
    Sinon, tu penses que je pourrais utiliser quel controle "de base" pour faire ce que je souhaite ?
    Il faut hériter de Control, parce qu'à mon avis la TrackBar ne peut pas être facilement customisée. Mais franchement ça risque d'être galère, c'est beaucoup de boulot de développer un contrôle WinForms...

    Sinon j'ai testé, chez moi ça fonctionne bien dans le designer... par contre ça plante à l'exécution
    En fait il a l'air assez pourri ce contrôle

  9. #9
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    1 048
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Suisse

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

    Informations forums :
    Inscription : Avril 2009
    Messages : 1 048
    Par défaut
    Moche mais fonctionne finalement très bien (j'ai fait un truc du genre pour sélectionner une période de date (sur plusieurs mois, voir année donc l'implémentation du calendrier basique n'allait pas)).

    Un usercontrole qui contient 2 autres contrôles (numérique updown dans ton cas) avec 2 propriété début - fin mapper sur les valeurs des 2 contrôles. Ensuite tu peux ajouter au usercontrole 2 propriété pour définir la zone de sélection (max et min).

    Ensuite faut bricoler pour éviter que la valeur du contrôle de début ne dépasse pas celui de fin et inversement en changeant les bornes des 2 numérique updown dynamiquement (a toi de voir ensuite si tu veux un comportement qui pousse l'autre borne ou qui bloque lors d'un dépassement).

    Après j'avoue que c'est franchement moins sexy que le genre de truc mis en liens plus haut, mais c'est techniquement plus accessible (en terme de niveau de connaissance et temps de développement).

    Autrement faut chercher un composant servi sur un plateau (et qui marche)

  10. #10
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Sinon DevExpress offre gratuitement une partie de ses contrôles (XtraEditors). Ca contient notamment le "Range Track Bar" qui fait exactement ce que tu veux...


  11. #11
    Membre extrêmement actif
    Inscrit en
    Avril 2008
    Messages
    2 573
    Détails du profil
    Informations personnelles :
    Âge : 65

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 573
    Par défaut personnaliser trackbar,heriter control,class TrackBarRenderer
    bonjour
    tu dois creer un control personnalise .Et recourir à la classe TrackBarRenderer .
    Cette classe "wrappe" la fonctionnalite de System.Windows.Forms.VisualStyles.VisualStyleRenderer qui est definie sur un element exposed par System.Windows.Forms.VisualStyles.VisualStyleElement.TrackBar class.
    Regarde ce lien MSDN sur TrackBarRenderer Class qui donne un exemple de trackbar "perso" pour un debut.
    http://www.google.fr/url?sa=t&source...iFb2VLm8pl2dfg


    Evidemment il lui manque les proprietes :
    -max value
    -min value
    -tickFrequency
    -small change et Large Change
    Et le .........dessin du 2eme "ThumbRectangle" .........à copier d'apres le 1er thumb de "TrackBarRenderer.GetTopPointingThumbSize.

    bon code......

  12. #12
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Effectivement, si tu décides finalement de le coder toi même, TrackBarRenderer est un bon point de départ...

  13. #13
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    98
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2008
    Messages : 98
    Par défaut
    D'accord, alors déjà merci à vous tous car vous m'avez bien aidé et je pense pouvoir me débrouiller par moi même maintenant !
    Je met le sujet en résolu, si jamais j'ai un problème je reposterai. Je vais commencer par voir avec le Range TrackBar de DevExpress.

    Bon week end, et merci encore !

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

Discussions similaires

  1. créer un controle calendar à un événement
    Par celiaaa dans le forum IHM
    Réponses: 2
    Dernier message: 04/04/2007, 18h08
  2. [VBA-E] Comment créer un control sur une liste de choix ?
    Par Soulsurfer dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 12/02/2007, 13h42
  3. Réponses: 3
    Dernier message: 09/06/2006, 21h45
  4. comment créer son controle et l'utiliser
    Par bajazet dans le forum MFC
    Réponses: 2
    Dernier message: 02/12/2005, 01h45
  5. Réponses: 11
    Dernier message: 02/09/2005, 16h41

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