Afficher/Masquer Toolstrip & Décalage de la Form

Messages postés
29
Date d'inscription
mardi 15 décembre 2009
Statut
Membre
Dernière intervention
12 novembre 2010
- - Dernière réponse : thepoe
Messages postés
30
Date d'inscription
vendredi 23 avril 2004
Statut
Membre
Dernière intervention
1 juin 2011
- 30 mars 2011 à 13:48
Bonjour à tous,

désolé pour le titre pas très clair mais c'est difficile à expliquer en quelques mots !

Voici mon problème : je crée un ToolStrip dans lequel je mets divers items, et je définis un menu contextuel de sorte qu'à l'intérieur de ce dernier, en cliquant sur un bouton "Barre d'icônes", cela fasse disparaitre/apparaitre le ToolStrip.
Jusque là, aucun problème, je gère ça avec "ToolStrip1.Visible".
Le souci, c'est que je voudrais que si le ToolStrip n'est pas visible, ce qui est dans ma Form "remonte", un peu comme quand on enlève une des barres sous word, excel, visual etc...; on voit alors la partie principale remonter proportionnellement à la réduction des barres du haut.
J'ai farfouillé dans les propriétés et sur le net mais je n'ai pas réussi à trouver.

De plus, mais c'est secondaire, je me demandais, dans le menu contextuel, comment faire pour qu'à gauche de mon bouton "barre d'icônes", je puisse avoir une petite flèche si la barre est affichée et rien sinon, comme un clic droit sur la barre de menus de Firefox en gros.

Voilà, merci d'avance et bonne continuation :)
Afficher la suite 

13 réponses

Messages postés
269
Date d'inscription
dimanche 31 mai 2009
Statut
Membre
Dernière intervention
12 mars 2011
0
Merci
Salut,
c'est un ToolStrip ou
un MenuStrip ?
Si c'est un MenuStrip je
sais comment faire ;)
... a+
Commenter la réponse de raffika
Messages postés
269
Date d'inscription
dimanche 31 mai 2009
Statut
Membre
Dernière intervention
12 mars 2011
0
Merci
Salut,
je viens d'essayer avec
un ToolStrip comme tu dis
et je me suis rendu compte
que ça s'appliquait comme
le MenuStrip, donc voici comment faire
(à partir d'un nouveau projet vide)
Créer un ToolStrip puis
créer un GroupBox et lui affecter
la valeur Fill de sa propriété Dock
(taper fill ou cliquer sur le rectangle du
millieu), le GroupBox, prendra la taille
de la Form mais n'empietera pas sur le
ToolStrip, alors il te suffira de placer
les éléments (boutons,textbox...ect) comme
tu le souhaite dans le GroupBox et
lorsque tu mettra visible à True
ou False du ToolStrip, le GroupBox
s'adaptera automatiquement à la Form
et les composants contenus dedans
également.
Par contre pour ta seconde demande
je ne l'ai pas bien comprise, tu parles
d'un ContextMenuStrip ?

salut
Commenter la réponse de raffika
Messages postés
29
Date d'inscription
mardi 15 décembre 2009
Statut
Membre
Dernière intervention
12 novembre 2010
0
Merci
Merci de ta réponse !

Alors j'ai appliqué ta méthode, et effectivement je vois clairement que lorsque le ToolStrip est caché, la GroupBox s'étire vers le haut. Par contre les composants dedans ne remontent pas (j'ai casé un gros bouton pour bien voir, et il reste à la même place).
Est-ce qu'il faudrait indiquer que les éléments appartiennent à la GroupBox ?

Pour ma deuxième question, c'était d'afficher à droite du bouton à l'intérieur du ContextMenuStrip, une petite flèche s'affiche mais j'ai trouvé comment faire.
Pour info c'est :
If ToolStrip1.Visible = False Then
ToolStrip1.Visible = True
BarreDicônesToolStripMenuItem.Checked = True
End If

Voilà, si tu as une autre astuce pour mon problème de décalage des contenus de la GroupBox, merci d'avance :)
Commenter la réponse de dullbrain
Messages postés
269
Date d'inscription
dimanche 31 mai 2009
Statut
Membre
Dernière intervention
12 mars 2011
0
Merci
Salut,
oui il faut indiquer que les
éléments appartiennent au GroupBox,
comme je t'ai expliqué , les composants
boutons ect ont directement étés crées dans
le GroupBox donc ont étés validés
comme appartenant au GroupBox...
Sinon j'ai fait des essais pour
que des éléments déjà présents avant
appartiennent au GroupBox et il semblerais
qu'il faille juste les déplacer [u]avec
la souris/u dans le GroupBox pour
qu'ils 'rentrent dedans'...
Voilà cette méthode devrai marcher
mais je suis avec Visual Basic 2008 Express
c'est peut-être pour ça que ça ne
marche pas bien ...
a+
Commenter la réponse de raffika
Messages postés
29
Date d'inscription
mardi 15 décembre 2009
Statut
Membre
Dernière intervention
12 novembre 2010
0
Merci
J'avais déjà viré tout ce qu'il y avait avant !
En gros j'ai ma Form, plus un menu en haut
J'ai ajouté la GroupBox, et mis la propriété Fill, là pas de souci, elle s'étend bien quand en exécution le ToolStrip n'est plus visible
J'ai ajouté des boutons dessus, par glissé-déposé et par double clic, mais là en exécution, seule la GroupBox se décale, sans incidence sur ce qu'elle contient.

Pourtant j'ai bien suivi tout ce que tu as dit, je vois plus trop !
Commenter la réponse de dullbrain
Messages postés
269
Date d'inscription
dimanche 31 mai 2009
Statut
Membre
Dernière intervention
12 mars 2011
0
Merci
Tu as quelle version de Visual Basic ?
Commenter la réponse de raffika
Messages postés
29
Date d'inscription
mardi 15 décembre 2009
Statut
Membre
Dernière intervention
12 novembre 2010
0
Merci
MVB 2008 Express.

Et sinon j'ai testé, les controls sont bien dans la GroupBox, quand je fais GroupBox1.Enabled = False, tout devient bien grisé.
Commenter la réponse de dullbrain
Messages postés
269
Date d'inscription
dimanche 31 mai 2009
Statut
Membre
Dernière intervention
12 mars 2011
0
Merci
Alors il y a peut être un problème au niveau
des anchors, là j'ai mis
Anchor = Bottom pour tous les composants
et ils ne se déplacent plus quand
je cache ou remet le ToolStrip...
Ensuite je remet Anchor = Top, Left
pour tous les composants et là ils
se déplacent...
Essaye ça je pense que les composants
doivent avoir au moins Top en propriété
Anchor pour qu'ils 'suivent' le GroupBox

salut
Commenter la réponse de raffika
Messages postés
29
Date d'inscription
mardi 15 décembre 2009
Statut
Membre
Dernière intervention
12 novembre 2010
0
Merci
En fait ils étaient déjà tous à Top,Left, j'ai changé pour voir, et quelle que soit la valeur de cette propriété, ça ne changeait rien...
Bref, je te mets des screens des propriétés du GroupBox et d'un button lambda, mais en fait j'ai quasi touché à rien après avoir mis le bouton sur le GroupBox donc je vois pas pourquoi il me décale pas le tout...

http://img153.imageshack.us/img153/3501/groupbox.jpg

http://img687.imageshack.us/img687/4813/buttonqt.jpg
Commenter la réponse de dullbrain
Messages postés
269
Date d'inscription
dimanche 31 mai 2009
Statut
Membre
Dernière intervention
12 mars 2011
0
Merci
J'ai regardé tes images...
Donc il y a une dernière possibilité
qui est que le MenuStrip ou le ToolStrip
a été crée dans le GroupBox...
Et dans ce cas c'est normal
que les boutons ne se déplacents pas...

Sinon essaye avec un nouveau projet
et crée dans l'ordre le menustrip
puis le toolstrip puis le combobox
en Fill puis un bouton dessus avec dans
le code du clique :
toolstrip1.visible=false:menustrip2.visible=false
lancer l'application puis cliquer sur le bouton
pour voir...

voilà
Commenter la réponse de raffika
Messages postés
269
Date d'inscription
dimanche 31 mai 2009
Statut
Membre
Dernière intervention
12 mars 2011
0
Merci
En regardant mieux tes images :
la propriété Dock de ton GroupBox1 n'est pas à Fill
et il semble que ton ToolStrip est dans le GroupBox...
Commenter la réponse de raffika
Messages postés
29
Date d'inscription
mardi 15 décembre 2009
Statut
Membre
Dernière intervention
12 novembre 2010
0
Merci
Tout d'abord et avant tout, merci de ta patience !

Alors j'ai bien fait comme tu m'as conseillé avec un tout nouveau projet, et là miracle, ça marche. Suite à quoi je me suis demandé d'où venait le problème dans mon projet courant. En fait, tu avais raison, le ToolStrip était dans le GroupBox même quand ce dernier ne semblait pas visuellement le contenir.

Bref, du coup j'ai viré le GroupBox et j'en ai remis un autre en veillant à ce qu'il n'inclue pas le ToolStrip et là impeccable, tous les contrôles sont déplacés comme souhaité !

Merci beaucoup, et bonne soirée :)
Commenter la réponse de dullbrain
Messages postés
30
Date d'inscription
vendredi 23 avril 2004
Statut
Membre
Dernière intervention
1 juin 2011
0
Merci
Il faut insérer un TableLayoutPanel et créer des colonnes et lignes pour placer les contrôles (en Dock:FILL). Ensuite tu peux gérer les lignes ou colonnes pour que leur taille soit absolue ou relative. et au moment du redimensionnement, tout suit comme voulu. Attention, il faut enlever AutoSize sur certains contrôles.
En espérant que ça puisse aider qqun.
Salut
Commenter la réponse de thepoe