Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Afficher/masquer la barre des menus

15 réponses
Avatar
TouTi
Bonjour

J'ai créé une barre de menus en utilisant le "créateur de menu" : Est-il
possible de masquer/afficher cette barre???

Merci

Touti

--

10 réponses

1 2
Avatar
Jacques93
Bonjour TouTi,
TouTi a écrit :
Bonjour

J'ai créé une barre de menus en utilisant le "créateur de menu" : Est-il
possible de masquer/afficher cette barre???

Merci

Touti

--




Oui comme la plupart des contrôles :

NomDuMenu.Visible = False

et

NomDuMenu.Visible = True

--
Cordialement,

Jacques.
Avatar
TouTi
Bonjour jacques

Effectivement chaque menu contenu dans la barre peut être manipulé :
Visible; enabled...

Ce que je voudrais, en fait, c'est d'afficher/masquer complétement la barre
des menus (menu + la barre) en une seule fois.

Touti

--
Avatar
TouTi
Par contre je viens de m'apercevoir que lorsque l'on cache tous les menus
principaux, la barre ne s'affiche plus... Peut être une solution???


Touti

--
Avatar
Jacques93
Bonjour Touti,
TouTi a écrit :
Par contre je viens de m'apercevoir que lorsque l'on cache tous les menus
principaux, la barre ne s'affiche plus... Peut être une solution???


Touti

--



Je ne suis pas sûr de bien comprendre, tu veux éviter de faire

mnuA.Visible = False
mnuB.Visible = False
mnuC.Visible = False
...


etc ... ?
--
Cordialement,

Jacques.
Avatar
TouTi
> Je ne suis pas sûr de bien comprendre, tu veux éviter de faire

mnuA.Visible = False
mnuB.Visible = False
mnuC.Visible = False
...


etc ... ?



Oui tout à fait, comme une barre d'outils que l'on ferait disparaitre avec
un barreoutil(1).visibleúlse

Je n'ai pas trouvé de propriètes spécifique à la barre de menu

Touti
Avatar
Jacques93
Bonjour Touti,
TouTi a écrit :
Je ne suis pas sûr de bien comprendre, tu veux éviter de faire

mnuA.Visible = False
mnuB.Visible = False
mnuC.Visible = False
...


etc ... ?




Oui tout à fait, comme une barre d'outils que l'on ferait disparaitre avec
un barreoutil(1).visibleúlse

Je n'ai pas trouvé de propriètes spécifique à la barre de menu

Touti





Tu peux utiliser un truc du genre :

Sub ShowMenu(bShow As Boolean)
Dim c As Control

For Each c In Controls
If TypeName(c) = "Menu" Then
c.Visible = bShow
End If
Next c

End Sub


--
Cordialement,

Jacques.
Avatar
Zoury
Bonjour ! :O)

Juste pour votre information, la structure TypeOf-Is est plus rapide à
l'exécution que l'emploi de la méthode TypeName() qui nécessite la
comparaison de chaines de caractères. De plus, je la trouve plus simple à
lire. :O)


If TypeName(c) = "Menu" Then



If TypeOf c Is Menu Then


--
Cordialement
Yanick
MVP pour Visual Basic
Avatar
Jacques93
Bonsoir Zoury,
Zoury a écrit :
Bonjour ! :O)

Juste pour votre information, la structure TypeOf-Is est plus rapide à
l'exécution que l'emploi de la méthode TypeName() qui nécessite la
comparaison de chaines de caractères. De plus, je la trouve plus simple à
lire. :O)



If TypeName(c) = "Menu" Then




If TypeOf c Is Menu Then




Bien noté Zoury, mais pour la simplicité de lecture, ça dépend pour qui ;-)

Comment savoir à quel niveau se placer ?

F1 sur TypeOf m'envoie sur l'aide de If ... Then ... Else
F1 sur TypeName m'envoie sur l'aide de TypeName

On facilement faire peut faire un

Debug.Print TypeName (c)

pour voir les différents type de contrôles.

L'élégance du code et la rapidité d'exécution ne sont pas toujours gage
de meilleure méthode pour la compréhension.

A supposer déjà que l'on ai bien compris la question et/ou l'objectif.
:-)

--
Cordialement,

Jacques.
Avatar
Zoury
> Debug.Print TypeName (c)



Très certainement. TypeName() est très très pratique.

F1 sur TypeOf m'envoie sur l'aide de If ... Then ... Else



Yep.. l'aide de l'instruction TypeOf se trouve dans cette fiche, c'est assez
ordinaire j'en convient. :O/

L'élégance du code et la rapidité d'exécution ne sont pas toujours gage
de meilleure méthode pour la compréhension.



En effet. :O)

Je la trouve plus simple à lire, car, amha, il s'agit tout simplement d'une
phrase (syntaxiquement correcte) et non d'une ligne de code (comme du COBOL
;O). Aussi, l'emploi du Is nous donne accès à tous les types via
l'intellisense, ce qui peut s'avérer pratique (et évite les fautes de
frappe).

Ceci dit, je ne dit pas que TypeName() devrais être bannit. Je l'emploi
régulièrement dans le cadre d'un Select Case. ;O)

--
Cordialement
Yanick
MVP pour Visual Basic
Avatar
TouTi
J'ai bien suivi vos commentaires mais la mise en application me pose un
probleme.

J'ai 3 trois menus dont un est intitulé "Affichage" contenant une commande
"barre d'outils" qui me permettra afficher/masquer cette barre.

Lorsque la barre affichage est masquée, j'appelle le popupmenu de ce menu
avec le code suivant :

Private Sub mnuViewRefresh_Click()
Dim c As Control
Dim aff As Boolean

If mnuViewRefresh.Checked = True Then
mnuViewRefresh.Checked = False
aff = False
Else
mnuViewRefresh.Checked = True
aff = True
End If

For Each c In Controls
If TypeOf c Is Menu Then c.Visible = aff
Next c

End Sub

Malheureusement, ça coince lorsqu'il cache le menu contenant ce code. De
plus cela ne cache pas que que les menus principaux mais tous les menus de
commandes....



Merci

--
1 2