Ola pessoal, com a permissão do forum segue algumas telas de menu vertical que desenvolvi para uma pequena aplicação.
A função que eu usei foi usar a funaçõ:
.top
Ou seja, conforme eu clico no menu desejado os outros botõe são redimencionados, para baixo ou para cima.
Exemplo:
Ao clicar no botão cadastros, os outro botões são jogados para baixo atraves da função ".top" sem as aspas.
e em seguida aparece o form com os submenus do botão cadastro, e assim sucessivamente vão aparecendo os submenus e redimencionandos os botões.
Basta apenas analisar o que deseja ser dimensionado e para onde.
Como montar
Criei as seguintes funções:
Public Sub GrowCad()
With Form_ADM_00_MenuPrincipal
.ln1.Top = !boxTempTop1.Top
.Registros.Top = !boxTempTop5.Top
.Consultas.Top = !boxTempTop6.Top
.Relatorios.Top = !boxTempTop7.Top
.Administracao.Top = !boxTempTop8.Top
.AlterarSenha.Visible = False
.Logoff.Visible = False
.Encerrar.Visible = False
End With
End Sub
Public Sub GrowReg()
With Form_ADM_00_MenuPrincipal
.Registros.Top = !boxTempTop1.Top
.ln2.Top = !boxTempTop2.Top
.Consultas.Top = !boxTempTop6.Top
.Relatorios.Top = !boxTempTop7.Top
.Administracao.Top = !boxTempTop8.Top
.AlterarSenha.Visible = False
.Logoff.Visible = False
.Encerrar.Visible = False
End With
End Sub
Public Sub GrowCon()
With Form_ADM_00_MenuPrincipal
.Registros.Top = !boxTempTop1.Top
.Consultas.Top = !boxTempTop2.Top
.ln3.Top = !boxTempTop3.Top
.Relatorios.Top = !boxTempTop7.Top
.Administracao.Top = !boxTempTop8.Top
.AlterarSenha.Visible = False
.Logoff.Visible = False
.Encerrar.Visible = False
End With
End Sub
Public Sub GrowRel()
With Form_ADM_00_MenuPrincipal
.Registros.Top = !boxTempTop1.Top
.Consultas.Top = !boxTempTop2.Top
.Relatorios.Top = !boxTempTop3.Top
.ln4.Top = !boxTempTop4.Top
.Administracao.Top = !boxTempTop8.Top
.AlterarSenha.Visible = False
.Logoff.Visible = False
.Encerrar.Visible = False
End With
End Sub
Public Sub GrowAdm()
With Form_ADM_00_MenuPrincipal
.Registros.Top = !boxTempTop1.Top
.Consultas.Top = !boxTempTop2.Top
.Relatorios.Top = !boxTempTop3.Top
.Administracao.Top = !boxTempTop4.Top
.ln5.Top = !boxTempTop9.Top
.AlterarSenha.Visible = False
.Logoff.Visible = False
.Encerrar.Visible = False
End With
End Sub
Public Sub GrowGeral()
With Form_ADM_00_MenuPrincipal
.BtTxt.SetFocus
'.Corpo1.Top = !boxTempTop1.Top
.Registros.Top = !boxTempTop1.Top
.Consultas.Top = !boxTempTop2.Top
.Relatorios.Top = !boxTempTop3.Top
.Administracao.Top = !boxTempTop4.Top
DoCmd.Close acForm, "ADM_00_MenuAdministracao"
DoCmd.Close acForm, "ADM_00_MenuCadastro"
DoCmd.Close acForm, "ADM_00_MenuConsulta"
DoCmd.Close acForm, "ADM_00_MenuRegistro"
DoCmd.Close acForm, "ADM_00_MenuRelatorio"
.AlterarSenha.Visible = True
.Logoff.Visible = True
.Encerrar.Visible = True
End With
End Sub
Os campos:
boxTempTop1
boxTempTop2
boxTempTop3
boxTempTop4
boxTempTop5
boxTempTop6
boxTempTop7
boxTempTop8
boxTempTop9
são campos (invisiveis) para onde os botões principais serão direcionados
Depois é so chamar nos botões principais as funções:
Private Sub Cadastros_Click()
GrowCad
End Sub
Private Sub Registros_Click()
GrowReg
End Sub
Private Sub Consultas_Click()
GrowCon
End Sub
Private Sub Relatorios_Click()
GrowRel
End Sub
Private Sub Administracao_Click()
GrowAdm
End Sub
Depois voce pode chamar também ao mover o mouse
Private Sub CorpoMenu_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
GrowGeral
End Sub
Para que os botões volte para seus estado de origem
Para chamar os submenus, voce pode optar pelo método "SourceObject"
é isso ai, bons estudos....