Compartilhar via


ListBox.FindString Método

Definição

Encontra o primeiro item no ListBox que começa com a cadeia de caracteres especificada.

Sobrecargas

FindString(String)

Encontra o primeiro item no ListBox que começa com a cadeia de caracteres especificada.

FindString(String, Int32)

Encontra o primeiro item no ListBox que começa com a cadeia de caracteres especificada. A pesquisa começa em um índice inicial específico.

FindString(String)

Encontra o primeiro item no ListBox que começa com a cadeia de caracteres especificada.

public:
 int FindString(System::String ^ s);
public int FindString (string s);
member this.FindString : string -> int
Public Function FindString (s As String) As Integer

Parâmetros

s
String

O texto a ser pesquisado.

Retornos

Int32

O índice baseado em zero do primeiro item encontrado, retornará ListBox.NoMatches se nenhuma correspondência for encontrada.

Exceções

O valor do parâmetro s é menor que -1 ou maior ou igual à contagem do item.

Exemplos

O exemplo de código a seguir demonstra como usar o FindString método para pesquisar a primeira instância de uma cadeia de caracteres em um ListBox. Se nenhum item for encontrado que corresponda à cadeia de FindString caracteres de pesquisa, retornará um valor -1 e o exemplo exibirá um MessageBox. Se um item for encontrado que corresponda ao texto de pesquisa, o exemplo usará o SetSelected método para selecionar o item no ListBox.

private:
   void FindMyString( String^ searchString )
   {
      // Ensure we have a proper string to search for.
      if ( searchString != String::Empty )
      {
         // Find the item in the list and store the index to the item.
         int index = listBox1->FindString( searchString );

         // Determine if a valid index is returned. Select the item if it is valid.
         if ( index != -1 )
                  listBox1->SetSelected( index, true );
         else
                  MessageBox::Show( "The search string did not match any items in the ListBox" );
      }
   }
private void FindMyString(string searchString)
{
   // Ensure we have a proper string to search for.
   if (!string.IsNullOrEmpty(searchString))
   {
      // Find the item in the list and store the index to the item.
      int index = listBox1.FindString(searchString);
      // Determine if a valid index is returned. Select the item if it is valid.
      if (index != -1)
         listBox1.SetSelected(index,true);
      else
         MessageBox.Show("The search string did not match any items in the ListBox");
   }
}
Private Sub FindMyString(ByVal searchString As String)
   ' Ensure we have a proper string to search for.
   If searchString <> String.Empty Then
      ' Find the item in the list and store the index to the item.
      Dim index As Integer = listBox1.FindString(searchString)
      ' Determine if a valid index is returned. Select the item if it is valid.
      If index <> -1 Then
         listBox1.SetSelected(index, True)
      Else
         MessageBox.Show("The search string did not match any items in the ListBox")
      End If
   End If
End Sub

Comentários

A pesquisa executada por esse método não diferencia maiúsculas de minúsculas. A pesquisa procura palavras que correspondam parcialmente ao parâmetro de cadeia de caracteres de pesquisa especificado. s Você pode usar esse método para pesquisar o primeiro item que corresponde à cadeia de caracteres especificada. Em seguida, você pode executar tarefas como remover o item que contém o texto de pesquisa usando o Remove método ou alterando o texto do item. Depois de encontrar o texto especificado, se quiser pesquisar outras instâncias do texto no ListBoxmétodo, você poderá usar a versão do FindString método que fornece um parâmetro para especificar um índice inicial dentro do ListBox. Se você quiser executar uma pesquisa para uma correspondência exata de palavras em vez de uma correspondência parcial, use o FindStringExact método.

Confira também

Aplica-se a

FindString(String, Int32)

Encontra o primeiro item no ListBox que começa com a cadeia de caracteres especificada. A pesquisa começa em um índice inicial específico.

public:
 int FindString(System::String ^ s, int startIndex);
public int FindString (string s, int startIndex);
member this.FindString : string * int -> int
Public Function FindString (s As String, startIndex As Integer) As Integer

Parâmetros

s
String

O texto a ser pesquisado.

startIndex
Int32

O índice baseado em zero do item antes do primeiro item a ser pesquisado. Defina como -1 (um negativo) para pesquisar desde o início do controle.

Retornos

Int32

O índice baseado em zero do primeiro item encontrado, retornará ListBox.NoMatches se nenhuma correspondência for encontrada.

Exceções

O parâmetro startIndex é menor que zero ou maior ou igual ao valor da propriedade Count da classe ListBox.ObjectCollection.

Exemplos

O exemplo de código a seguir demonstra como usar o FindString método para pesquisar todas as instâncias do texto de pesquisa nos itens do ListBox. O exemplo usa a versão do FindString método que permite que você especifique um índice de pesquisa inicial do qual fazer uma pesquisa contínua de todos os itens no ListBox. O exemplo também demonstra como determinar quando o FindString método começa a pesquisar na parte superior da lista depois de chegar à parte inferior da lista de itens para evitar uma pesquisa recursiva. Depois que os itens são encontrados no ListBox, eles são selecionados usando o SetSelected método.

private:
   void FindAllOfMyString( String^ searchString )
   {
      // Set the SelectionMode property of the ListBox to select multiple items.
      listBox1->SelectionMode = SelectionMode::MultiExtended;

      // Set our intial index variable to -1.
      int x = -1;

      // If the search string is empty exit.
      if ( searchString->Length != 0 )
      {
         // Loop through and find each item that matches the search string.
         do
         {
            // Retrieve the item based on the previous index found. Starts with -1 which searches start.
            x = listBox1->FindString( searchString, x );

            // If no item is found that matches exit.
            if ( x != -1 )
            {
               // Since the FindString loops infinitely, determine if we found first item again and exit.
               if ( listBox1->SelectedIndices->Count > 0 )
               {
                  if ( x == listBox1->SelectedIndices[ 0 ] )
                                    return;
               }

               // Select the item in the ListBox once it is found.
               listBox1->SetSelected( x, true );
            }
         }
         while ( x != -1 );
      }
   }
private void FindAllOfMyString(string searchString)
{
   // Set the SelectionMode property of the ListBox to select multiple items.
   listBox1.SelectionMode = SelectionMode.MultiExtended;
   
   // Set our intial index variable to -1.
   int x =-1;
   // If the search string is empty exit.
   if (searchString.Length != 0)
   {
      // Loop through and find each item that matches the search string.
      do
      {
         // Retrieve the item based on the previous index found. Starts with -1 which searches start.
         x = listBox1.FindString(searchString, x);
         // If no item is found that matches exit.
         if (x != -1)
         {
            // Since the FindString loops infinitely, determine if we found first item again and exit.
            if (listBox1.SelectedIndices.Count > 0)
            {
               if(x == listBox1.SelectedIndices[0])
                  return;
            }
            // Select the item in the ListBox once it is found.
            listBox1.SetSelected(x,true);
         }
      }while(x != -1);
   }
}
Private Sub FindAllOfMyString(ByVal searchString As String)
   ' Set the SelectionMode property of the ListBox to select multiple items.
   listBox1.SelectionMode = SelectionMode.MultiExtended

   ' Set our intial index variable to -1.
   Dim x As Integer = -1
   ' If the search string is empty exit.
   If searchString.Length <> 0 Then
      ' Loop through and find each item that matches the search string.
      Do
         ' Retrieve the item based on the previous index found. Starts with -1 which searches start.
         x = listBox1.FindString(searchString, x)
         ' If no item is found that matches exit.
         If x <> -1 Then
            ' Since the FindString loops infinitely, determine if we found first item again and exit.
            If ListBox1.SelectedIndices.Count > 0 Then
               If x = ListBox1.SelectedIndices(0) Then
                  Return
               End If
            End If
            ' Select the item in the ListBox once it is found.
            ListBox1.SetSelected(x, True)
         End If
      Loop While x <> -1
   End If
End Sub

Comentários

A pesquisa executada por esse método não diferencia maiúsculas de minúsculas. A pesquisa procura palavras que correspondam parcialmente ao parâmetro de cadeia de caracteres de pesquisa especificado. s Você pode usar esse método para pesquisar o primeiro item que corresponde à cadeia de caracteres especificada no índice inicial especificado na lista de itens para o ListBox. Em seguida, você pode executar tarefas como remover o item que contém o texto de pesquisa usando o Remove método ou alterando o texto do item. Esse método normalmente é usado depois que uma chamada é feita usando a versão desse método que não especifica um índice inicial. Depois que um item inicial é encontrado na lista, esse método normalmente é usado para localizar instâncias adicionais do texto de pesquisa especificando a posição do índice no startIndex parâmetro do item após a primeira instância encontrada do texto de pesquisa. Se você quiser executar uma pesquisa para uma correspondência exata de palavras em vez de uma correspondência parcial, use o FindStringExact método.

Observação

Quando a pesquisa atinge a parte inferior da ListBox, ela continua pesquisando da parte superior da parte de ListBox trás para o item especificado pelo startIndex parâmetro.

Confira também

Aplica-se a