Neste artigo vou apresentar as propriedades e métodos do controle CheckBox e sua utilização em aplicações VB .NET. |
O controle CheckBox (ou caixa de seleção) é um dos controles mais usados em aplicações Windows Forms e permite ao usuário definir as opções true/false ou sim/não selecionando e/ou deselecionando o controle.
Quando o controle checkbox for selecionado ele possui o valor True e quando ele for desmarcado ele possui o valor False.
Vamos criar um projeto Windows Forms no Visual Studio 2015 com o nome VBNET_Checkbox e arrastar a partir da ToolBox dois controles Checkbox no formulário form1.vb:
Recursos usados : Visual Studio 2015 Community
Quando você arrasta e solta um controle Checkbox da ToolBox no
formulário por padrão as propriedades Name e Text são
definidas como Checkbox1. Se você repetir o procedimento um novo controle será incluído com nome e texto igual a Checkbox2. O problema com essa abordagem é que você passa a ter diversos controles checkbox individuais separados o que torna mais difícil mover os controles. Para facilitar essa tarefa geralmente agrupamos os controles no interior de um GroupBox ou de um Panel.
|
O
controle CheckBox possui três estados: checked, unchecked e indeterminate.
No estado indeterminate, o checkbox apresenta uma cor acinzentada. Para
habilitar o estado indeterminate a propriedade ThreeState deve ser
definida como True.
As propriedades mais usadas do CheckBox são:
Os principais métodos do CheckBox são:
Os eventos principais do controle são:
Para determinar se o controle esta ou não selecionado podemos usar as propriedades Checked ou CheckState.
1- Usando a propriedade Checked:
If CheckBox1.Checked Then
MessageBox.Show("Checkbox1 esta marcado !")
Else
MessageBox.Show("Checkbox1 NÃO esta marcado !")
End If
|
Neste exemplo se a caixa de seleção estiver desmarcada o valor será False, caso contrário será True.
2- Usando a propriedade CheckState:
Se a caixa de seleção foi selecionada, o valor da propriedade CheckState é igual a 1. Se ela não foi selecionada o valor é zero. (o valor para a opção indeterminate também é zero.)
If CheckBox2.CheckState = 1 Then
MessageBox.Show("Checkbox1 esta marcado !")
Else
MessageBox.Show("Checkbox1 NÃO esta marcado !")
End If
|
If CheckBox2.CheckState = CheckState.Checked Then MessageBox.Show("Checkbox1 esta marcado !") Else MessageBox.Show("Checkbox1 NÃO esta marcado !") End If |
Podemos também usar o valor CheckState.Checked ao invés de usar o valor 1 para tornar o código mais legível.
Uma dúvida muito comum de iniciantes e como recuperar um valor armazenado em um banco de dados e representar o valor usando o CheckBox.
Vamos supor que em um banco de dados temos armazenados os valores 1 indicando que o cliente esta em dia e 0 indicando que ele esta em atraso.
No formulário você tem um checkbox que deseja exibir marcado se o cliente estiver em atraso e desmarcado se ele estiver em dia.
Para realizar essa tarefa basta acessar o banco e armazenar o valor em uma variável statusDoCliente, por exemplo, e a seguir usar o código :
If statusDoCliente = 1 Then
CheckBox2.Checked = True
End If
|
If CheckBox2.Checked Then statusDoCliente = 1 End If |
Para definir um valor para armazenar no banco de dados basta fazer o processo inverso.
Podemos usar o evento CheckedChanged para realizar qualquer outra ação em um programa VB .NET.
Como exemplo vamos incluir em um formulário 1 Label, 1 TextBox , 1 Button e um controle GroupBox e dentro dele 5 controles CheckBox. Confira o leiaute abaixo:
No evento Load do formulário vamos ocultar a Label1 e o TextBox1 e definir o título do formulário como Macoratti .net :
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Me.Text = "Macoratti .net"
Label1.Visible = False
TextBox1.Visible = False
End Sub |
Agora vamos definir o código no evento Click do botão Salvar que vai capturar as opções marcadas pelo usuário e exibir em uma MsgBox:
Private Sub btnSalvar_Click(sender As Object, e As EventArgs) Handles btnSalvar.Click
Dim str As String
str = " "
If CheckBox1.Checked = True Then
str &= CheckBox1.Text
str &= " "
End If
If CheckBox2.Checked = True Then
str &= CheckBox2.Text
str &= " "
End If
If CheckBox3.Checked = True Then
str &= CheckBox3.Text
str &= " "
End If
If CheckBox4.Checked = True Then
str &= CheckBox4.Text
str &= " "
End If
If CheckBox5.Checked = True Then
str &= TextBox1.Text
str &= " "
End If
If str <> Nothing Then
MsgBox("Opções marcadas " + vbCrLf + str + vbCrLf + "Obrigado")
End If
End Sub
|
Finalmente no evento CheckedChanged da caixa de seleção 5 (Outras) definimos o código para exibir a Label1 e a TextBox1 :
Private Sub CheckBox5_CheckedChanged(sender As Object, e As EventArgs) Handles CheckBox5.CheckedChanged
Label1.Visible = True
TextBox1.Visible = True
End Sub |
Executando o projeto e marcando algumas opções e clicando no botão Salvar iremos obter o seguinte resultado:
Pegue o projeto completo aqui : VBNET_CheckBox.zip
Jesus lhes respondeu,
e disse: A minha doutrina não é minha, mas daquele que me enviou.
Se alguém quiser fazer a vontade dele, pela mesma doutrina conhecerá se ela é de
Deus, ou se eu falo de mim mesmo.
João 7:16-17
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 ? |
Referências:
Super DVD Vídeo Aulas - Vídeo Aula sobre VB .NET, ASP .NET e C#
Super DVD C# - Recursos de aprendizagens e vídeo aulas para C#
Curso Fundamentos da Programação Orientada a Objetos com VB .NET
Visual Basic .NET - Implementando um array de controles - Macoratti.net