|
![]() |
![]() |
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: