Criando menus em tempo de execução
No artigo VB.NET - Windows Forms - vimos como é ficou mais fácil e intuitivo criar menus no Visual Basic em tempo de projeto , mas e se você precisar criar menus em tempo de execução ??? Calma , aqui esta o 'Chapolin Colorado' para te ajudar (não contavam com minha astúcia... )
Vou mostrar como criar um menu em tempo de execução no VB.NET . Por questão de simplicidade e de preguiça minha o nosso menu de exemplo terá uma opção - Arquivo - com duas sub-opções : Abrir e Sair . Vamos criar um projeto Windows Forms com um formulário...
1 - Inicie um novo projeto no Visual Studio.NET com as seguintes características (sinta-se a vontade para alterar a seu gosto.)
2- Altere a propriedade Text do formulário informando - Criando Menus em tempo de execução .
A aparência do seu form deverá ser a seguinte:
3- Vamos agora ao código que irá criar o menu que irá surgir ao executarmos o projeto:
I-) A primeira coisa a fazer é declarar uma variável do tipo MainMenu , pois a classe MainMenu é que representa a estrutura de um menu no fomrulário . (MainMenu é composta por objetos MenuItem que representam os comandos individuais dos menus).
Clique duas vezes no formulário padrão - form1.vb - e no início do formulário declare a variável mMenu assim :
Public Class Form1Inherits System.Windows.Forms.Form Private mMenu As New System.Windows.Forms.MainMenu() |
Declaramos a variável mMenu como do tipo MainMenu e a instanciamos.
Vamos agora usar o evento Load do formulário para criar os itens do menu :
Private
Sub Form1_Load(ByVal
sender As System.Object,
ByVal e
As System.EventArgs)
Handles
MyBase.Load
Me.Menu = mMenu
With mMenu.MenuItems.Add("mnuArquivo") .Text = "&Arquivo" With .MenuItems.Add("mnuAbrir", New EventHandler(AddressOf mnuAbrir_Click)) .Text = "Abrir" End With With .MenuItems.Add("mnusep") 'o separador .Text = "-" End With With .MenuItems.Add("mnuSair", New EventHandler(AddressOf mnuAbrir_Click)) .Text = "Sair" End With End WithEnd Sub |
Perceba que estamos usando o mesmo evento (mnuAbrir_Click) para os dois itens do menu , por isto temos que declarar o procedimento que captura qual item do menu foi clicado , eí-lo a seguir:
Private Sub mnuAbrir_Click(ByVal sender As Object, ByVal e As System.EventArgs)
Select Case CType(sender, MenuItem).Text Case "Abrir" MessageBox.Show("Menu opcao Abrir") Case "Sair" Me.Close() End Select End Sub |
Agora vamos ver se deu certo... Executando o projeto deveremos obter:
E 'acabei de acabar' mais uma dica VB.NET para você , até a próxima ...
Veja os
Destaques e novidades do SUPER DVD Visual Basic
(sempre atualizado) : clique e confira !
Quer migrar para o VB .NET ?
Quer aprender C# ??
Quer aprender os conceitos da Programação Orientada a objetos ? Quer aprender o gerar relatórios com o ReportViewer no VS 2013 ? |
Gostou ? Compartilhe no Facebook Compartilhe no Twitter
Referências:
Super DVD Vídeo Aulas - Vídeo Aula sobre VB .NET, ASP .NET e C#
VB .NET - Passando valores entre formulários - Macoratti.net