VB .NET  - Apresentando e usando o controle CheckBox (iniciante)


 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:


José Carlos Macoratti