Réaliser sa barre d'outils lors du chargement

5/5 (6 avis)

Vue 7 260 fois - Téléchargée 933 fois

Description

Il existe deux façons de créer une barre d'outils:

La première solution, la plus simple et la plus classique, se passe dans l'environnement graphique de VB.
Il suffit de dessiner la Toolbar, d'ajouter un contrôle ImageList puis de compléter celui-ci avec des images et, enfin, de créer les boutons dans la barre d'outils (après avoir reliée celle-ci au contrôle ImageList afin d'attribuer à chacun des boutons l'index de l'image souhaitée).

Cette manière de faire est certe la plus facile et offre l'avantage de montrer immédiatement à quoi ressemblera votre barre d'outils.

Mais son inconvénient réside dans le fait que s'il vous prend l'envie de vouloir ajouter, supprimer et/ou remplacer des images dans votre ImageList, il vous faudra alors défaire la liaison qui la relie à votre barre d'outils avant de modifier le contenu de votre ImageList. Puis après cela, il vous faudra rétablir cette liaison et passer en revue chacun des boutons de votre barre d'outils afin de s'assurer que l'index de l'image qui lui corresponde soit le bon.

L'autre méthode utilise le code et non l'environnement graphique de VB. Certes, en employant celle-ci, vous ne verrez votre barre d'outils que lorsque vous lancerez votre application.
Mais la maintenance de votre barre d'outils sera beaucoup plus souple et plus rapide car il vous suffira de faire du copier-coller dans votre code pour placer tel bouton à telle position et vous pourrez ajouter, supprimer et modifier vos images sans avoir à repasser en revue tous vos boutons.

Source / Exemple :


'Pour fabriquer la barre d'outils
Private Sub RéaliserBarreOutils ()

Dim objButton As Button

Set MaToolBar.ImageList = ImageList1

Set objButton = MaToolBar.Buttons.Add ( , "Enregistrer", , ,"EnregistrerFichier")
objButton.ToolTipText = "Enregistrer le fichier en cours"

Set objButton = MaToolBar.Buttons.Add ( , , , tbrSeparator)

Set objButton = MaToolBar.Buttons.Add ( , "Imprimer" , , ,"ImprimerFichier")
objButton.ToolTipText = "Imprimer le fichier en cours"

Set objButton = Nothing

End Sub

Conclusion :


C'est cette seconde méthode que j'ai utilisé dans l'application sur laquelle je travaille actuellement.
J'ai épurer le code au maximum afin de ne conserver que ce qui concernait mon propos (donc pas de code d'enregistrement et d'impression de fichier).

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

JMC70
Messages postés
77
Date d'inscription
samedi 9 novembre 2002
Statut
Membre
Dernière intervention
6 juillet 2014

Merci pour ce petit bout de code
C'est tout à fait ce que je cherchais car je peux ainsi partager un seul ImageList placé sur une feuille pour illustrer les barres d'outils de différentes feuilles (ce qui évite de répéter les mêmes images sur chaque feuille). Si la feuille qui contient l'ImageList se nomme Accueil.frm par exemple, l'appel dans la procédure deviendra en ligne 6 :
Set MaToolBar.ImageList = Accueil.ImageList1
C'est de plus très souple car les images sont repérées par leur Key dans l'ImageList, ce qui fait qu'on peut en ajouter et en retirer par la suite autant qu'on veut (alors qu'en mode graphique il faut refaire toute la barre).
RACHID234
Messages postés
15
Date d'inscription
vendredi 6 février 2004
Statut
Membre
Dernière intervention
10 novembre 2005

Slt
SIMPLE ET EFFICACE 10/10
mais comment faire pour changer la couleur du toolbar
smoundangha
Messages postés
23
Date d'inscription
mercredi 12 novembre 2003
Statut
Membre
Dernière intervention
2 février 2004

C'est pas grave. Merci kan même.
cs_PROGRAMMIX
Messages postés
1134
Date d'inscription
mercredi 2 octobre 2002
Statut
Membre
Dernière intervention
24 juillet 2011

Hélas je ne connais c# que de nom
donc je ne pourrai t'être d'aucune utilité dans ce domaine...
smoundangha
Messages postés
23
Date d'inscription
mercredi 12 novembre 2003
Statut
Membre
Dernière intervention
2 février 2004

Pas mal! J'apprecie beaucoup. Aurais-tu par hasard une idée sur comment faire la même chose en c#, ou des suggestions, des liens...?
Sinon, c pas grave, je vais essayer d'utiliser ta source.
Merci par avance!

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.