VB .NET
- Localizando itens em um ListBox/ComboBox
Já escrevi alguns artigos sobre os controles de Lista ListBox e Combobox e neste artigo vou mostrar como realizar uma busca e uma busca exata nestes controles de lista.
Inicie um novo projeto no VS.NET do tipo Windows Application e no formulário padrão insira um controle ListBox , um controle ComboBox e alguns botões de comando e caixas de texto conforme figura abaixo:

O objetivo é incluir alguns itens nos controles de lista : lstProcura e cboProcura usando o método Add a coleção Items
O código do evento Click do botão - Incluir Item (btnInclui) é mostrado abaixo:
Private Sub btnInclui_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnInclui.Click
Try
'Inclui alguns itens nos controles de lista
lstProcura.Items.Add(txtInclui.Text)
cmbProcura.Items.Add(txtInclui.Text)
Catch t As Exception
MessageBox.Show(t.Message, " Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try
End Sub
|
Os itens incluídos podem ser vistos no listbox e combobox. A próxima etapa e realizar uma busca não exata. Para isto usamos o código no evento Click do botão : Procura:
O botão procura realiza uma busca não exata usando o método FindString do objeto controle de lista. Se o usuário selecionou realizar uma busca exata então o método usado é o método FindStringExact.
Private Sub btnProcura_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnProcura.Click
Try
'verifica se o usuário selecionou a localização exata e faz os ajustes
If chkProcuraExata.CheckState = CheckState.Checked Then
lstProcura.SelectedIndex = lstProcura.FindStringExact(txtProcura.Text)
cmbProcura.SelectedIndex = cmbProcura.FindStringExact(txtProcura.Text)
Else
lstProcura.SelectedIndex = lstProcura.FindString(txtProcura.Text)
cmbProcura.SelectedIndex = cmbProcura.FindString(txtProcura.Text)
End If
Catch t As Exception
MessageBox.Show(t.Message, " Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try
End Sub
|
O código abaixo esta no botão Próximo; ele verifica se estamos no fim dos controles e se for o caso faz com que o índice retorne ao início.
Conforme a seleção do usuário é feita a busca ou a busca exata.
Private Sub btnProcuraProximo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnProcuraProximo.Click
Try
'Verifica se estamos no fim do listbox antes de procurar novamente
'Se estiver no fim retorna o indice ao inicio
If lstProcura.SelectedIndex + 1 = lstProcura.Items.Count Then
lstProcura.SelectedIndex = -1
cmbProcura.SelectedIndex = -1
End If
'verifica se o usuario selecionou a busca por string exata
If chkProcuraExata.CheckState = CheckState.Checked Then
lstProcura.SelectedIndex = lstProcura.FindStringExact(txtProcura.Text, lstProcura.SelectedIndex)
cmbProcura.SelectedIndex = cmbProcura.FindStringExact(txtProcura.Text, cmbProcura.SelectedIndex)
Else
lstProcura.SelectedIndex = lstProcura.FindString(txtProcura.Text, lstProcura.SelectedIndex)
cmbProcura.SelectedIndex = cmbProcura.FindString(txtProcura.Text, cmbProcura.SelectedIndex)
End If
Catch t As Exception
MessageBox.Show(t.Message, " Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try
End Sub
|
Executando o projeto e fazendo alguns testes temos o resultado como exibido abaixo:

Eu sei é apenas VB.NET , mas eu
gosto ...
![]()
|
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:
Super DVD Vídeo Aulas - Vídeo Aula sobre VB .NET, ASP .NET e C#
Visual Studio - Dica de produtividade - Quick Launch - Macoratti.net
Visual Studio - Dica de produtividade - Nuget - Macoratti.net