Trabalhando com Formulários - o que mudou ?
Os formulários foram a peça fundamental nas versões anteriores do Visual Basic. Desde de sua primeira versão os formulários sempre estiveram presentes no VB.
É claro que ao longo do tempo eles sofreram mudanças e melhoramentos até chegar a versão do VB 6. É a partir desta versão que vou tomar como referência o último estágio dos formulários antes da plataforma .NET.
NO VB6 um formulário era uma 'entidade híbrida' ; assim um formulário em VB 6 podia tanto se comportar como uma classe como um tipo especial de objeto. Uma estranha dupla personalidade classe-objeto.
Por causa disto você podia usa o seguinte código com os formulários:
1- form1.Show vbmodal - estou usando o método Show para exibir um formulário mesmo sem ter instanciado o objeto form1.
2- Dim frm as Form1 - Aqui estou criando uma instância de Form1 , neste caso estou criando o objeto frm a partir da classe formulários.
Set frm = New Form1
No entanto no VB.NET posso dizer literalmente que "acabou a farra" . Agora os formulários são classes e você não pode mais usar o código - form1.Show , se tentar vai obter um erro. Como Show é um método copia ele somente será valido para objetos criados a partir da classe. Agora no VB.NET para poder usar um formulário você deverá criar uma instância de um objeto formulário a partir da classe formulário. Assim :
Dim MeuFormulário As New Form1()
No VB.NET cada formulário possui propriedades internas ( como no VB6) e se você examinar as primeiras linhas de código em um formulário VB.NET vai deparar sempre com :
Public Class Form1Inherits System.Windows.Forms.Form |
Sabe o que significa este código ? Significa que seu formulário herda(Inherits) todos os recursos de uma classe Form que pode ser encontrada no Namespace - System.Windows.Forms . Através da herança o objeto Form1 acessa todos os recursos de uma outra classe , assim sendo , Form1 obtêm as funções básicas de um formulário do tipo - System.Windows.Forms.Form.
Da teoria a prática
1 - Inicie um novo projeto no Visual Studio.NET com as seguintes características (sinta-se a vontade para alterar a seu gosto.)
2 - O VB.NET cria como padrão o formulário - form1.vb - insira no formulário - form1.vb - uma caixa de texto e um botão de comando conforme a figura abaixo:
3- Insira um novo formulário no seu projeto. No menu principal escolha Project | Add Windows Forms e na caixa de diálogo - Add New Item - marque Windows Form e clique no botão - Open -.
Pronto um formulário chamado - form2.vb - foi incluído no seu projeto.
4- No botão de comando - Formulário 1 - clique duas vezes e insira o código que vai tentar exibir o formulário form2.vb.
Private
Sub Button1_Click(ByVal
sender As System.Object,
ByVal e
As System.EventArgs)
Handles
Button1.Click
Form2.show()
End Sub |
Já vou adiantar : Não vai Funcionar !!! O método Show não está nem disponível , pois o objeto Form2 não foi instanciado.
E agora ?? Como posso trabalhar com mais de um formulário no meu projeto VB ? Como valores entre formulários no meu projeto VB.NET ?
Vou mostrar como resolver este problema. Vamos lá...
Vamos incluir um modulo no projeto. No menu Project selecione Add Module e a seguir inclua o seguinte código no módulo :
Module Module1Public FForm1 As New Form1() Public FForm2 As New Form2()
Sub main() FForm1.ShowDialog() End Sub End Module |
A seguir , no formulário form2.vb inclua uma caixa de texto e uma botão de comando com a propriedade Text igual a - Formulário2.
No formulário form1.vb , vamos incluir o código abaixo no evento Click do botão de comando.
Private
Sub Button1_Click(ByVal
sender As System.Object,
ByVal e
As System.EventArgs)
Handles
Button1.Click
FForm2.Show() FForm2.TextBox1.Text = TextBox1.Text End Sub |
No formulário form2.vb inclua o código abaixo no evento Click do botão de comando.
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click FForm1.TextBox1.Text = TextBox1.Text FForm2.Hide() End Sub |
Antes de executar o projeto vamos tornar o módulo incluído a primeira rotina a ser executada.
Na janela Solution Explorer clique com o botão direito no mouse sobre o nome do projeto e selecione a opção Properties |
|
Na janela - Property Pages - selecione Module1 em Startup object: |
Agora execute o projeto. O formulário form1.vb será exibido. Digite algo na caixa de texto do formulário e clique no botão de comando. O formulário form2.vb será exibido e na caixa de texto deste formulário você verá o texto digitado no formulário form1.vb. Passamos o texto entre os formulários :
Se você clicar no botão de comando do formulário form2.vb o formulário form2.vb será oculto , e , se você digitar algo na caixa de texto do formulário form2.vb , o texto será exibido no formulário form1.vb.
Este comportamento é devido ao código associado a cada botão de comando de cada formulário. Então se você quiser trabalhar formulários um projeto VB.NET - Windows forms siga os seguintes conselhos:
Você precisa incluir um módulo do no seu projeto
O modulo deverá ser o primeiro a ser executado quando o projeto rodar.
Declare variáveis objetos do tipo formulário como públicas - Public.
Instancie todos os objetos formulários.
Lembre-se : No VB.NET formulários são classes.
Até o próximo artigo VB.NET...
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