VB.NET - Criando controles em tempo de execução com WinForms
O Visual Basic.NET fornece muitos controles visuais que podemos usar em uma aplicação WinForms.(veja artigo VB.NET - Windows Forms). Podemos inserir e configurar os controles em tempo de desenho ou em tempo de execução via código.
Neste artigo vou mostrar como incluir e configurar alguns controles via código em tempo de execução em uma aplicação WinForms. (Eu estarei usando o Visual Studio.Net versão beta 2 )
Vamos incluir e configurar os seguintes controles : TextBox , Button , ListBox , CheckBox e Label.
Private txtBox As New TextBox() Private btnAdd As New Button() Private lstBox As New ListBox() Private chkBox As New CheckBox() Private lblCount As New Label() |
'Configura o formulário. With Me .MaximizeBox = False.MinimizeBox = False.BackColor = Yellow .ForeColor = Black .Size = New System.Drawing.Size(255, 265).Text = "Controles em tempo de execução" .FormBorderStyle = FormBorderStyle.FixedDialog .StartPosition = FormStartPosition.CenterScreen End With |
With
Me.txtBox
.Text = "Teste" .Location = New System.Drawing.Point(10, 25).Size() = New System.Drawing.Size(70, 20) End With |
With Me.btnAdd.BackColor = Cyan .Text = "Incluir Valor" .Location = New System.Drawing.Point(90, 25).Size() = New System.Drawing.Size(100, 25) End With |
Agora o código para a caixa de verificação - checkbox - chkbox
With
Me.chkBox
.Text = "Desabilitar" .Location = New System.Drawing.Point(15, 190).Size() = New System.Drawing.Size(110, 30) End With |
With Me.lstBox .Items.Add("Ana Maria")
.Items.Add("Paulo Coelho")
.Items.Add("Fernado Lima")
.Items.Add("Janice Raquel")
.Sorted =
True.Location =
New System.Drawing.Point(10, 55).Size() =
New System.Drawing.Size(130, 95) End With
With Me.lblCount .Text = lstBox.Items.Count & " items"
.Location =
New System.Drawing.Point(55, 160).Size() =
New System.Drawing.Size(65, 15) End With
With Me.Controls .Add(btnAdd)
.Add(txtBox)
.Add(lstBox)
.Add(chkBox)
.Add(lblCount)
End With
|
Ao lado temos o formulário em tempo de execução exibindo os
controles que inserimos via código no projeto.
|
O código para a aplicação é dado a seguir:
Imports System.Drawing.ColorPublic Class Form1Inherits System.Windows.Forms.Form 'Controles que vamos inserir no formulário Private txtBox As New TextBox() Private btnAdd As New Button() Private lstBox As New ListBox() Private chkBox As New CheckBox() Private lblCount As New Label()
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 'Configura o formulário. With Me.MaximizeBox = False.MinimizeBox = False.BackColor = Yellow .ForeColor = Black .Size = New System.Drawing.Size(255, 265).Text = "Controles em tempo de execução" .FormBorderStyle = FormBorderStyle.FixedDialog .StartPosition = FormStartPosition.CenterScreen End With With Me.txtBox ' a caixa de texto .Text = "Teste" .Location = New System.Drawing.Point(10, 25).Size() = New System.Drawing.Size(70, 20)End With 'Formata os controles. Nota: Controles herdam a cor do formulário With Me.btnAdd 'o botão de comando .BackColor = Cyan .Text = "Incluir Valor" .Location = New System.Drawing.Point(90, 25).Size() = New System.Drawing.Size(100, 25)End With With Me.chkBox ' caixa de verificação .Text = "Desabilitar" .Location = New System.Drawing.Point(15, 190).Size() = New System.Drawing.Size(110, 30)End With With Me.lstBox 'a caixa de listagem com a propriedade Sort ativa .Items.Add("Ana Maria") .Items.Add("Paulo Coelho") .Items.Add("Fernado Lima") .Items.Add("Janice Raquel") .Sorted = True.Location = New System.Drawing.Point(10, 55).Size() = New System.Drawing.Size(130, 95)End With
With Me.lblCount ' label .Text = lstBox.Items.Count & " items" .Location = New System.Drawing.Point(55, 160).Size() = New System.Drawing.Size(65, 15)End With
'Inclui controles no formulario. With Me.Controls .Add(btnAdd) .Add(txtBox) .Add(lstBox) .Add(chkBox) .Add(lblCount) End With End Sub End Class
|
Creio que não preciso comentar nada tal a simplicidade do código... Bye...
José Carlos Macoratti