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