Udostępnij za pośrednictwem


ListBox.FindString Metoda

Definicja

Znajduje pierwszy element w elemencie rozpoczynającym ListBox się od określonego ciągu.

Przeciążenia

FindString(String)

Znajduje pierwszy element w elemencie rozpoczynającym ListBox się od określonego ciągu.

FindString(String, Int32)

Znajduje pierwszy element w elemencie rozpoczynającym ListBox się od określonego ciągu. Wyszukiwanie rozpoczyna się od określonego indeksu początkowego.

FindString(String)

Znajduje pierwszy element w elemencie rozpoczynającym ListBox się od określonego ciągu.

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

Parametry

s
String

Tekst do wyszukania.

Zwraca

Indeks oparty na zerach pierwszego znalezionego elementu; zwraca wartość ListBox.NoMatches , jeśli nie znaleziono dopasowania.

Wyjątki

Wartość parametru s jest mniejsza niż -1 lub większa lub równa liczbie elementów.

Przykłady

W poniższym przykładzie kodu pokazano, jak za pomocą FindString metody wyszukać pierwsze wystąpienie ciągu w obiekcie ListBox. Jeśli nie znaleziono elementów pasujących do ciągu FindString wyszukiwania, zwraca wartość -1, a w przykładzie zostanie wyświetlona wartość MessageBox. Jeśli element zostanie znaleziony zgodny z tekstem wyszukiwania, w przykładzie użyto SetSelected metody , aby wybrać element w elemencie 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

Uwagi

Wyszukiwanie wykonywane przez tę metodę nie jest uwzględniane wielkości liter. Wyszukiwanie wyszukuje wyrazy, które częściowo pasują do określonego parametru ciągu wyszukiwania, s. Za pomocą tej metody można wyszukać pierwszy element zgodny z określonym ciągiem. Następnie można wykonywać zadania, takie jak usuwanie elementu zawierającego tekst wyszukiwania przy użyciu Remove metody lub zmiany tekstu elementu. Po znalezieniu określonego tekstu, jeśli chcesz wyszukać inne wystąpienia tekstu w pliku ListBox, możesz użyć wersji FindString metody, która udostępnia parametr do określania indeksu początkowego w obiekcie ListBox. Jeśli chcesz wyszukać dokładne dopasowanie wyrazu zamiast częściowego dopasowania, użyj FindStringExact metody .

Zobacz też

Dotyczy

FindString(String, Int32)

Znajduje pierwszy element w elemencie rozpoczynającym ListBox się od określonego ciągu. Wyszukiwanie rozpoczyna się od określonego indeksu początkowego.

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

Parametry

s
String

Tekst do wyszukania.

startIndex
Int32

Indeks zera elementu przed przeszukanym pierwszym elementem. Ustaw wartość ujemną na wartość (-1), aby wyszukać od początku kontrolki.

Zwraca

Indeks oparty na zerach pierwszego znalezionego elementu; zwraca wartość ListBox.NoMatches , jeśli nie znaleziono dopasowania.

Wyjątki

Parametr startIndex jest mniejszy niż zero lub większy lub równy wartości Count właściwości ListBox.ObjectCollection klasy.

Przykłady

Poniższy przykład kodu pokazuje, jak za pomocą FindString metody wyszukać wszystkie wystąpienia tekstu wyszukiwania w elementach elementu ListBox. W przykładzie użyto wersji FindString metody, która umożliwia określenie początkowego indeksu wyszukiwania, z którego ma być stale wyszukiwane wszystkie elementy w elemecie ListBox. W przykładzie pokazano również, jak określić, kiedy FindString metoda rozpoczyna wyszukiwanie w górnej części listy po osiągnięciu dolnej części listy elementów, aby zapobiec wyszukiwaniu cyklicznego. Po znalezieniu elementów w elemecie ListBoxsą one wybrane przy użyciu SetSelected metody .

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

Uwagi

Wyszukiwanie wykonywane przez tę metodę nie jest uwzględniane wielkości liter. Wyszukiwanie wyszukuje wyrazy, które częściowo pasują do określonego parametru ciągu wyszukiwania, s. Za pomocą tej metody można wyszukać pierwszy element zgodny z określonym ciągiem w określonym indeksie początkowym na liście elementów dla elementu ListBox. Następnie można wykonywać zadania, takie jak usuwanie elementu zawierającego tekst wyszukiwania przy użyciu Remove metody lub zmiany tekstu elementu. Ta metoda jest zwykle używana po wywołaniu przy użyciu wersji tej metody, która nie określa indeksu początkowego. Po znalezieniu początkowego elementu na liście ta metoda jest zwykle używana do znajdowania dalszych wystąpień tekstu wyszukiwania przez określenie pozycji indeksu w startIndex parametrze elementu po pierwszym znalezionym wystąpieniu tekstu wyszukiwania. Jeśli chcesz wyszukać dokładne dopasowanie wyrazu zamiast częściowego dopasowania, użyj FindStringExact metody .

Uwaga

Gdy wyszukiwanie osiągnie dolną część ListBoxelementu , kontynuuje wyszukiwanie w górnej części ListBox elementu określonego startIndex przez parametr .

Zobacz też

Dotyczy