 VB .NET 
- Localizando itens em um ListBox/ComboBox
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 Facebook
  
 Compartilhe no Twitter
 
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