Potentiomètre (bouton rond qui tourne, knob) paramétrable en vb .net 2005 gdi+

Soyez le premier à donner votre avis sur cette source.

Vue 15 099 fois - Téléchargée 1 511 fois

Description

Dans mes développements, j'avais souvent besoin d'un contrôle de type slider mais plus esthétique, comme un bouton tournant de chaine hifi. J'utilisais auparavant un contrôle acheté, mais j'avais très envie de le remplacer par un contrôle de ma création car je pourrais modifier le source à volonté. Les exemples que j'ai trouvé ne m'ont pas convaincus, notament pour le calcul des angles, j'ai donc décidé d'en écrire un de A à Z. J'espère qu'il vous plaira!

GabKnob est donc un contrôle de type potentiomètre / knob qui peut servir par exemple pour controler un volume, ou tout ce qu'un slider traditionnel peut faire.
Il hérite de la classe UserControl, dessine dans un thread séparé et utilise GDI+.

Voici un petit aperçu des propriétés paramétrables :
- Intérieur en couleur pleine ou dégradé
- Taille du knob
- Couleurs du knob
- Type de déplacements à la souris (horizontal / vertical / circulaire)
- Taille de la bordure
- Couleur de la bordure
- Type de la bordure
- Type du témoin de position
- Taille du témoin de position
- Angle mini / angle max
- Valeur min / valeur max
- Couleur du texte de la valeur
- Conditions d'affichage de la valeur
Bien d'autres ... mais j'ai la flemme de tout écrire ^^

Un projet de test est inclu (il ne teste pas toutes les possibilités pour le moment mais reste un bon aperçu).
Ce contrôle n'est pas figé : je le mettrai à jour régulièrement. Et tout le monde peut s'en servir et le modifier à titre privé.
Vos suggestions sont les bienvenues! :) Et aussi veuillez me reporter les bugs si vous en trouvez.

!!! Remarques !!!
Pour récupérer la valeur retournée par le knob en ayant des performances OK, il FAUT passer par l'évenement KnobValueChanged et ne pas oublier de placer un petit My.Application.DoEvents() à la fin du code de l'évènement. Ne pas passer par la propriété KnobValeur.

Source / Exemple :


' Trop de code à poster, veuillez télécharger la source :)

Conclusion :


Un seul bug connu pour le moment :

En mode déplacement horizontal ou vertical seulement, si l'on utilise l'évènement KnobValueChanged et que l'on y place un My.Application.DoEvents(), il semble que le bouton "saute" sur certaines machines. Je cherche actuellement pourquoi, mais de l'aide est bienvenue! :)

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

logazur
Messages postés
2
Date d'inscription
samedi 2 octobre 2010
Statut
Membre
Dernière intervention
7 juillet 2011
-
Félicitations ! Depuis le temps que je cherchais un bouton comme celui là pour mes logiciels, le coté personnalisable est très bien ! Merci !
GabSoftware
Messages postés
72
Date d'inscription
jeudi 6 mai 2004
Statut
Membre
Dernière intervention
14 novembre 2008
-
Merci !
arlodvig
Messages postés
6
Date d'inscription
jeudi 9 janvier 2003
Statut
Membre
Dernière intervention
30 décembre 2008
-
Superbe s'il y a d'autre petit utilitaire comme cela qui permettent de personnaliser VB, je suis preneur
Bravo
GabSoftware
Messages postés
72
Date d'inscription
jeudi 6 mai 2004
Statut
Membre
Dernière intervention
14 novembre 2008
-
Je pense que c'est un copier-coller malheureux. Ou bien une fonctionnalité pour les petits futés ! Faudra que je corrige ça à l'occasion ;)
cs_darunia
Messages postés
354
Date d'inscription
mercredi 18 décembre 2002
Statut
Membre
Dernière intervention
24 mars 2011
1 -
DisMoiGab,

En ce qui concerne la proprieté KnobValeur, je pense qu'il y a un problème car tu renvois la valeur de l'angle et non la valeur (_knobValeur).

Est ce un copier coller malheureux, ou bien y a t il une raison ?

A+

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.