Controle .net : boutons multi-parametrables pour vos applications

Soyez le premier à donner votre avis sur cette source.

Vue 10 649 fois - Téléchargée 939 fois

Description

Bonjour à tous,

Voici ma 2ème source. Elle ressemble comme deux gouttes d'eau à ma première qui était de vous offrir un contrôle .Net. La 1ère c'est pour faire des barres de progression, ici des boutons !

Au menu : Boutons simples, apparence 3D, dégradés, hachurés, avec bordures ou non, avec images ou non et plein d'autres paramètres jouant sur le look et les couleurs !

Il y a même la possibilité de définir la taille des images que vous ajouter dans les boutons, ou de faire du "stretch".

Je n'ai pas eu le temps de faire un pdf cette fois, mais comme je l'ai dis, les mêmes fonctions que j'ai développées dans le contrôle pour la barre de progression se retrouvent ici adaptées au bouton.

Ne tenez pas trop compte aussi des commentaires (surtout l'explication de chaque propriété) car j'ai pas eu le temps de relire tout et il y a sûremment des fautes d'orthographes, voir une description qui ne correspond pas (j'ai repris les commentaires de ma première source). Le but de la propriété est de toute façon facile à comprendre rien qu'avec son nom.
Sinon vous pouvez toujours télécharger le PDF de ma première source.

Source / Exemple :


' In The ZIP

Conclusion :


CHAQUE PROPRIETE EST DUPLIQUEE 4X.

Un bouton a 3 états : Normal, souris dessus, bouton cliqué.
J'ai donc défini une propriété pour chaque état : ce qui fait 3x la même propriété
Et la 4ème alors ?
Hé bien la 4ème propriété est la propriété générale.
En définissant cette propriété, vous changez par défaut les 3 autres propriétés en une fois.
En lisant (retournant la valeur de) cette propriété, vous obtenez la valeur de la propriété pour le mode du bouton en cours.

Rien compris ?
Exemple :
La propriété Text défini le texte du bouton. Vous pouvez avoir un texte différent par mode de bouton (normal, souris dessus, cliqué). Si vous voulez définir le même texte quelque soit le mode du bouton, au lieu de faire :

VF_Button1.Text1="Exemple"
VF_Button1.Text2="Exemple"
VF_Button1.Text3="Exemple"

Vous faites :

VF_Button1.Text="Exemple"

Et Text1, Text2, Text3 ont la valeur "Exemple"

Maintenant, choisissons 3 valeurs différentes :

VF_Button1.Text1="Exemple 1"
VF_Button1.Text2="Exemple 2"
VF_Button1.Text3="Exemple 3"

En lecture de VF_Button1.Text, cette propriété retourne , si le mode du bouton en cours est "Clicked" : "Exemple 3"

Ok ?

Evidemment multiplier les propriétés par 4 donne un code .... 4x plus long dans le module de mon composant.
Mais j'ai pensé qu'en faisant ainsi ca vous permettait par contre de gagner bcp de temps et justement du code dans VOTRE projet :
- Avec une seule ligne de code (cette 4ème propriété par défaut), vous définissez les 3 modes du bouton pour des valeurs communes
- Avec une seule ligne de code, vous obtenez la valeur de la propriété du bouton dans le mode dans lequel il se trouve SANS devoir connaître ce mode

Voilà

Bonne prog !

TigerFab

PS : Ah oui, j'ai posté une question dans le forum mais personne n'a trouvé de réponse à me donner :-)
Je la remets ici : Image définit la propriété de l'image d'un bouton, moi j'ai donc ajouté Image1, Image2 et Image3.
Ben quand on choisit une image dans l'explorateur de propriétés (avec les 3 petits points "...") si on veut la retirer de la propriété, il suffit de faire "supprimer" du clavier et ca revient à (Aucun).
Pas mes propriétés personalisées Image1, Image2 et Image3. Une fois que vous avez choisi une image, vous savez plus l'enlever.
Je ne sais pas comment régler ce problème. Si qcq sait, j'apporterai la correction au composant.
Cela vaut pour toutes les propriétés personalisées Image (BackgroundImage, ...)

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

cs_dragon
Messages postés
2336
Date d'inscription
samedi 14 juillet 2001
Statut
Membre
Dernière intervention
5 mai 2009
3 -
faudrais plus d'états sur tes boutons
normal, survol de la sourie, appuyé, cliquer, enabled, ....

pour le reste, rien a redire, magnifique
SimonKari
Messages postés
80
Date d'inscription
dimanche 29 décembre 2002
Statut
Membre
Dernière intervention
1 octobre 2004
-
Tu peux faire une Sub intitulée "ResetMaPropriété" et mettre dans cette dernière la position de reset de l'objet incriminé. Tel que

Pour la propriété BackGround

Public Sub ResetBackGround
imgback = nothing
End Sub
cs_LordBob
Messages postés
2865
Date d'inscription
samedi 2 novembre 2002
Statut
Membre
Dernière intervention
11 mai 2009
8 -
comme l'autre commentaire sur l'autre source... c'est tres bien, mais comme l'a dit dragon, ca serait bien plus d'état sur les boutons...
TigerFab
Messages postés
115
Date d'inscription
samedi 15 février 2003
Statut
Membre
Dernière intervention
18 mai 2008
-
Oui c'est vrai, je voulais surtout développer le côté look. Il resterait maintenant à lui donner plus de gestion d'évènements. Mais pour mes propres applications j'avais juste besoin de mes 3 états : normal, survol, cliqué. Je me suis donc arrêté là. Vu le nombre de sources que je mets à disposition :-( vous avez compris que le temps me manque pour finaliser pleinement ces contrôles. Par contre le jour où je les améliore je ferai évidemment l'update ici.

-> SimonKari : En effet, mais ca oblige à passer par le code pour l'enlever. Or en natif, VS gère l'effacement de l'image de la propriété BackGround uniquement via l'explorateur de propriétés. C'est la que je comprends pas pq pour la définition d'autres propriétés images personalisées, cela ne marche pas. A mon avis il faut passer par des déclarations dans le code (UITypeEditor, ...) mais je ne sais pas comment.
SimonKari
Messages postés
80
Date d'inscription
dimanche 29 décembre 2002
Statut
Membre
Dernière intervention
1 octobre 2004
-
Quelle connerie tu me sort là ! Tu ferais bien d'essayer les conseils qu'on te donne avant de juger ! Parce justement mon grand, si tu utilise la sub que je te dis le système la considère comme tu dis "en natif" !!! GROS MALIN !

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.