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 :
| PublicClass Form1 Inherits 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 WithEnd With End 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:
| PrivateSub 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 Facebook
  
 Compartilhe no Twitter
 
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