|
|
![]() |
![]() |
Neste artigo vou apresentar o controle CheckedListBox da plataforma .NET mostrando como funciona e como podemos usá-lo em aplicações Windows Forms. |
O controle CheckedListBox é similar ao controle ListBox, possuindo todos os recursos deste controle, mas exibe um checkbox ao lado do nome do item no controle de lista permitindo que o usuário selecione um ou mais itens marcando o checkbox na caixa de listagem.
Neste artigo vou apresentar os recursos básicos do controle CheckListBox.
Recursos usados:
Nota: Baixe e use a versão Community 2015 do VS ela é grátis e é equivalente a versão Professional.
Criando a solução e o projeto VB .NET e o C# no Visual Studio Community 2015
Abra o VS 2015 Community e clique em New Project;
Selecione Other Project Types e clique em Visual Studio Solution e selecione Blank Solution;
Informe o nome Controle_CheckedListBox e clique em ok;
A seguir no menu File clique em Add -> New Project ;
Selecione Visual C# -> Windows e marque o template Windows Forms Application;
Informe o nome CheckedListBox_CSharp;
A seguir no menu File clique em Add -> New Project ;
Selecione Visual Basic -> Windows e marque o template Windows Forms Application;
Informe o nome CheckedListBox_VBNET;
Dessa forma teremos 1 solução contendo um projeto Visual Basic e um projeto C# que iremos desenvolver e usar no artigo.
Usando o controle CheckedListBox
Podemos adicionar objetos na caixa de listagem em tempo de projeto e de execução.
Em tempo de projeto basta arrastar e soltar o controle CheckedListBox a partir da ToolBox no formulário e usando a propriedade items usar o String Collection Editor para informar os itens a serem incluídos na listagem:

Em tempo de execução podemos atribuir valores a um array de objetos e usar o método AddRange para incluí-los na listagem; a lista irá exibir o valor da string para cada objeto:
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load Dim checkedListBox1 As New CheckedListBox() checkedListBox1.Items.AddRange(New Object() {"Segunda-feira", "Terça-Feira",
"Quarta-Feira", "Quinta-feira", "Sexta-Feira", "Sábado",
"Domingo"})
checkedListBox1.Location = New System.Drawing.Point(10, 15)
checkedListBox1.Size = New System.Drawing.Size(120, 150)
Me.Controls.Add(checkedListBox1)
End Sub
|
private void btnIncluirControle1_Click(object sender, EventArgs e)
{
CheckedListBox checkedListBox1 = new CheckedListBox();
checkedListBox1.Items.AddRange(new object[]
{
"Segunda-feira","Terça-Feira","Quarta-Feira","Quinta-feira","Sexta-Feira", "Sábado", "Domingo"
});
checkedListBox1.Location = new System.Drawing.Point(10, 15);
checkedListBox1.Size = new System.Drawing.Size(120, 150);
this.Controls.Add(checkedListBox1); } |
Podemos também incluir itens no controle em tempo de execução usando o método Add. O Controle CheckedListBox suporta 3 estados através da enumeração CheckState:
Checked
UnChecked
Indeterminate
private void btnIncluirControl2_Click(object sender, EventArgs e)
{
CheckedListBox checkedListBox1 = new CheckedListBox();
checkedListBox1.Location = new System.Drawing.Point(250, 15);
checkedListBox1.Size = new System.Drawing.Size(120, 150);
this.Controls.Add(checkedListBox1); checkedListBox1.Items.Add("Segunda-feira", CheckState.Checked);
checkedListBox1.Items.Add("Terça-Feira", CheckState.Unchecked);
checkedListBox1.Items.Add("Quarta-Feira", CheckState.Indeterminate);
checkedListBox1.Items.Add("Quinta-Feira", CheckState.Unchecked);
checkedListBox1.Items.Add("Sexta-Feira", CheckState.Unchecked);
checkedListBox1.Items.Add("Sábado", CheckState.Unchecked);
checkedListBox1.Items.Add("Domingo", CheckState.Unchecked);
} |
Private Sub btnIncluirControl2_Click(sender As Object, e As EventArgs) Handles btnIncluirControl2.Click
Dim checkedListBox1 As New CheckedListBox()
checkedListBox1.Location = New System.Drawing.Point(250, 15)
checkedListBox1.Size = New System.Drawing.Size(120, 150)
Me.Controls.Add(checkedListBox1) checkedListBox1.Items.Add("Segunda-feira", CheckState.Checked)
checkedListBox1.Items.Add("Terça-Feira", CheckState.Unchecked)
checkedListBox1.Items.Add("Quarta-Feira", CheckState.Indeterminate)
checkedListBox1.Items.Add("Quinta-Feira", CheckState.Unchecked)
checkedListBox1.Items.Add("Sexta-Feira", CheckState.Unchecked)
checkedListBox1.Items.Add("Sábado", CheckState.Unchecked)
checkedListBox1.Items.Add("Domingo", CheckState.Unchecked)
End Sub |
Executando o projeto iremos obter a página abaixo:
![]() |
![]() |
| C# | VB .NET |
Para interagir com os elementos selecionados podemos usar as propriedades :
CheckedItem - Encapsula uma coleção de itens marcados, incluindo itens com o estado Indeterminate;
CheckedIndex - Encapsula uma coleção de índices dos itens marcados, incluindo itens com o estado Indeterminate;
GetItemCheckState - Retorna o valor da enumeração CheckState do item selecionado
Abaixo um exemplo onde percorremos os itens selecionados :
private void btnInteragir_Click(object sender, EventArgs e)
{
// verifica se existem itens marcados
if (checkedListBox1.CheckedItems.Count != 0)
{
// percorre todos os itens marcados
// e verifica se um item especifico foi marcado
for (int i = 0; i <= checkedListBox1.CheckedItems.Count - 1; i++)
{
if (checkedListBox1.CheckedItems[i].ToString() == "Domingo")
{
MessageBox.Show("Domingo foi marcado");
}
}
}
//pecorre os itens marcados e exibe o titulo e o estado do item
foreach(object i in checkedListBox1.CheckedItems)
{
MessageBox.Show("Item com titulo : " + "" + i.ToString() + ""
+ ", esta marcado. O estado é : " +
checkedListBox1.GetItemCheckState(checkedListBox1.Items.IndexOf(i)).ToString() + ".");
}
}
|
Private Sub btnInteragir_Click(sender As Object, e As EventArgs) Handles btnInteragir.Click
' verifica se exitem itens marcados
If checkedListBox1.CheckedItems.Count <> 0 Then
' percorre todos os itens marcados
' e verifica se um item especifico foi marcado
For i As Integer = 0 To checkedListBox1.CheckedItems.Count - 1
If checkedListBox1.CheckedItems(i).ToString() = "Domingo" Then
MessageBox.Show("Domingo foi marcado")
End If
Next
End If
'pecorre os itens marcados e exibe o titulo e o estado do item
For Each i As Object In checkedListBox1.CheckedItems
MessageBox.Show("Item com titulo : " + "" + i.ToString() + "" + ", esta marcado. O estado é : " + _
checkedListBox1.GetItemCheckState(checkedListBox1.Items.IndexOf(i)).ToString() + ".")
Next
End Sub
|
| C# | VB .NET |
Executando o projeto teremos o seguinte resultado:

Para marcar ou desmarcar todos os itens de um CheckedListBox podemos fazer da seguinte forma:
Primeiro inclua um controle checkBox no formulário e a seguir defina o código o no evento click de um botão de controle para chamar a função SelecionaTodos() passando o valor true ou false:
private void btnMarcaDesmarca_Click(object sender, EventArgs e)
{
if (chkSeleciona.Checked)
{
SelecionaTodos(true);
}
else
{
SelecionaTodos(false);
}
}
private void SelecionaTodos(bool CheckThem)
{
for (int i = 0; i <= (checkedListBox1.Items.Count - 1); i++)
{
if (CheckThem)
{
checkedListBox1.SetItemCheckState(i, CheckState.Checked);
}
else
{
checkedListBox1.SetItemCheckState(i, CheckState.Unchecked);
}
}
}
|
Private Sub btnMarcaDesmarca_Click(sender As Object, e As EventArgs) Handles btnMarcaDesmarca.Click
If chkSeleciona.Checked Then
SelecionaTodos(True)
Else
SelecionaTodos(False)
End If
End Sub
Private Sub SelecionaTodos(CheckThem As Boolean)
For i As Integer = 0 To (checkedListBox1.Items.Count - 1)
If CheckThem Then
checkedListBox1.SetItemCheckState(i, CheckState.Checked)
Else
checkedListBox1.SetItemCheckState(i, CheckState.Unchecked)
End If
Next
End Sub
|
| C# | VB .NET |
Executando o projeto teremos o seguinte resultado:
![]() |
Pegue o projeto completo aqui :
Controle_CheckedListBox.zip
Porque há um só Deus, e um só Mediador entre Deus e os homens, Jesus Cristo
homem.
1 Timóteo 2:5
|
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 ? Quer aprender a criar aplicações Web Dinâmicas usando a ASP .NET MVC 5 ? |
Gostou ?
Compartilhe no Facebook
Compartilhe no Twitter
Referências: