Tabcontrol vertical

Soyez le premier à donner votre avis sur cette source.

Snippet vu 15 024 fois - Téléchargée 31 fois

Contenu du snippet

Bon et bien en fait, aprés avoir bataillé de nombreuses heures sur des sites a la recherche d'un TabControl vertical ou d'un menu déroulant si vous préférez (cf screenshot) et n'ayant rien trouver de bien probant j'ai décidé de poster mon travail. Il n'y a pas de quoi s'affoler mais si comme moi vous devez faire un interface dont la majeure partie de la fenetre est occupé par une picturebox alors un menu déroulant vertical sera le bienvenue.

J'ai mis en place 4 panels sur ma form. Chaque panel s'ouvre via les boutons "btnNomDuBouton" et contient d'autres boutons qui engendre des actions (dans mon appli je charge des images, mais a vous de changez leurs fonctionnalités.

Voila deux click sur un même bouton ouvre et ferme le panel correspondant. Un click sur un bouton puis sur un autre ouvre le panel associé et ferme les autres.

N.B: la propriété dock des boutons commandant les panels est à régler en DockStyle.Top
Voila c tt

Source / Exemple :


#Region "MenuComposant"
        Public Sub MenuComposant(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnVerins.Click, btnPompes.Click, btnMoteurs.Click, btnDistributeurs.Click
            ' On récupère le nom du bouton et suivant sont état (true = ouvert; false = fermer)
            ' on affiche le menu.
            If sender.name = "btnVerins" Then
                If _btnEtat = False Then
                    Fermer_Pompe() : Fermer_Moteur() : Fermer_Distributeur()
                    Ouvrir_Verin()
                ElseIf _btnEtat = True Then
                    Fermer_Verin()
                End If

            ElseIf sender.name = "btnPompes" Then
                If _btnEtat2 = False Then
                    Fermer_Verin() : Fermer_Moteur() : Fermer_Distributeur()
                    Ouvrir_Pompe()
                ElseIf _btnEtat2 = True Then
                    Fermer_Pompe()
                End If

            ElseIf sender.name = "btnMoteurs" Then
                If _btnEtat3 = False Then
                    Fermer_Pompe() : Fermer_Verin() : Fermer_Distributeur()
                    Ouvrir_Moteur()
                ElseIf _btnEtat3 Then
                    Fermer_Moteur()
                End If

            ElseIf sender.name = "btnDistributeurs" Then
                If _btnEtat4 = False Then
                    Fermer_Pompe() : Fermer_Moteur() : Fermer_Verin()
                    Ouvrir_Distributeur()
                ElseIf _btnEtat4 = True Then
                    Fermer_Distributeur()
                End If
            End If
        End Sub

        Sub Ouvrir_Verin()
            ' On fixe l'état du bouton et l'image a charger.
            _btnEtat = True : btnVerins.Image = Image.FromFile("Images\_btnVerins_ON.bmp")
            ' On dispose les controls de la bonne manière.
            Panel1.Height = _Height : Panel1.Top = btnVerins.Top
            Panel2.Height = btnPompes.Height : Panel2.Top = Panel1.Top + Panel1.Height
            Panel3.Height = btnMoteurs.Height : Panel3.Top = Panel2.Top + btnPompes.Height
            Panel4.Height = btnDistributeurs.Height : Panel4.Top = Panel3.Top + btnMoteurs.Height
        End Sub
        Sub Fermer_Verin()
            ' On fixe l'état du bouton et l'image a charger
            _btnEtat = False : btnVerins.Image = Image.FromFile("Images\_btnVerins_OFF.bmp")
            ' On dispose les controls de la bonne manière.
            Panel1.Height = btnVerins.Height : Panel1.Top = btnVerins.Top
            Panel2.Height = btnPompes.Height : Panel2.Top = Panel1.Top + btnVerins.Height - 1
            Panel3.Height = btnMoteurs.Height : Panel3.Top = Panel2.Top + btnPompes.Height - 1
            Panel4.Height = btnDistributeurs.Height : Panel4.Top = Panel3.Top + btnMoteurs.Height - 1
        End Sub

        Sub Ouvrir_Pompe()
            ' On fixe l'état du bouton et l'image a charger
            _btnEtat2 = True : btnPompes.Image = Image.FromFile("Images\_btnPompes_ON.bmp")
            ' On dispose les controls de la bonne manière.
            Panel1.Height = btnVerins.Height : Panel1.Top = btnVerins.Top
            Panel2.Height = _Height2 : Panel2.Top = Panel1.Top + btnVerins.Height
            Panel3.Height = btnMoteurs.Height : Panel3.Top = Panel2.Top + Panel2.Height
            Panel4.Height = btnDistributeurs.Height : Panel4.Top = Panel3.Top + Panel3.Height
        End Sub
        Sub Fermer_Pompe()
            ' On fixe l'état du bouton et l'image a charger
            _btnEtat2 = False : btnPompes.Image = Image.FromFile("Images\_btnPompes_OFF.bmp")
            ' On dispose les controls de la bonne manière.
            Panel1.Height = btnVerins.Height : Panel1.Top = btnVerins.Top
            Panel2.Height = btnPompes.Height : Panel2.Top = Panel1.Top + btnVerins.Height - 1
            Panel3.Height = btnMoteurs.Height : Panel3.Top = Panel2.Top + btnPompes.Height - 1
            Panel4.Height = btnDistributeurs.Height : Panel4.Top = Panel3.Top + btnMoteurs.Height - 1
        End Sub

        Sub Ouvrir_Moteur()
            ' On fixe l'état du bouton et l'image a charger
            _btnEtat3 = True : btnMoteurs.Image = Image.FromFile("Images\_btnMoteurs_ON.bmp")
            ' On dispose les controls de la bonne manière.
            Panel1.Height = btnVerins.Height : Panel1.Top = btnVerins.Top
            Panel2.Height = btnPompes.Height : Panel2.Top = Panel1.Top + btnVerins.Height
            Panel3.Height = _Height3 : Panel3.Top = Panel2.Top + btnPompes.Height
            Panel4.Height = btnDistributeurs.Height : Panel4.Top = Panel3.Top + Panel3.Height
        End Sub
        Sub Fermer_Moteur()
            ' On fixe l'état du bouton et l'image a charger
            _btnEtat3 = False : btnMoteurs.Image = Image.FromFile("Images\_btnMoteurs_OFF.bmp")
            ' On dispose les controls de la bonne manière.
            Panel1.Height = btnVerins.Height : Panel1.Top = btnVerins.Top
            Panel2.Height = btnPompes.Height : Panel2.Top = Panel1.Top + btnVerins.Height - 1
            Panel3.Height = btnMoteurs.Height : Panel3.Top = Panel2.Top + btnPompes.Height - 1
            Panel4.Height = btnDistributeurs.Height : Panel4.Top = Panel3.Top + btnMoteurs.Height - 1
        End Sub

        Sub Ouvrir_Distributeur()
            ' On fixe l'état du bouton et l'image a charger
            _btnEtat4 = True : btnDistributeurs.Image = Image.FromFile("Images\_btnDistributeurs_ON.bmp")
            ' On dispose les controls de la bonne manière.
            Panel1.Height = btnVerins.Height : Panel1.Top = btnVerins.Top
            Panel2.Height = btnPompes.Height : Panel2.Top = Panel1.Top + btnVerins.Height
            Panel3.Height = btnMoteurs.Height : Panel3.Top = Panel2.Top + btnPompes.Height
            Panel4.Height = _Height4 : Panel4.Top = Panel3.Top + btnMoteurs.Height
        End Sub
        Sub Fermer_Distributeur()
            ' On fixe l'état du bouton et l'image a charger
            _btnEtat4 = False : btnDistributeurs.Image = Image.FromFile("Images\_btnDistributeurs_OFF.bmp")
            ' On dispose les controls de la bonne manière.
            Panel1.Height = btnVerins.Height : Panel1.Top = btnVerins.Top
            Panel2.Height = btnPompes.Height : Panel2.Top = Panel1.Top + btnVerins.Height - 1
            Panel3.Height = btnMoteurs.Height : Panel3.Top = Panel2.Top + btnPompes.Height - 1
            Panel4.Height = btnDistributeurs.Height : Panel4.Top = Panel3.Top + btnMoteurs.Height - 1
        End Sub
#End Region

A voir également

Ajouter un commentaire

Commentaires

Messages postés
21
Date d'inscription
vendredi 21 octobre 2005
Statut
Membre
Dernière intervention
12 juillet 2006

j' ai le ^meme problem de lordskyser1 donc, je veut si tu peut m'envoi le zip
ou le solution Mr lordskyser1 .
merci en avance
Messages postés
84
Date d'inscription
lundi 31 mars 2003
Statut
Membre
Dernière intervention
1 juillet 2006

Bonjour, le résultat a l'air sympa, mais je ne l'ai pas testé car je n'ai pas vu le zip. J'ai enregistré le code mais je n'ai pas le temps de l'insérer dans un projet et de tester. Donc je te metrai une note (surement bonne) lorsque tu auras ajouté un zip et que je pourrais tester. Voilà, continue comme çà, bonne prog

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.