ListBox.FindStringExact Metoda

Definicja

Znajduje pierwszy element w obiekcie ListBox , który dokładnie pasuje do określonego ciągu.

Przeciążenia

FindStringExact(String)

Znajduje pierwszy element w obiekcie ListBox , który dokładnie pasuje do określonego ciągu.

FindStringExact(String, Int32)

Znajduje pierwszy element w obiekcie ListBox , który dokładnie pasuje do określonego ciągu. Wyszukiwanie rozpoczyna się od określonego indeksu początkowego.

FindStringExact(String)

Znajduje pierwszy element w obiekcie ListBox , który dokładnie pasuje do określonego ciągu.

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

Parametry

s
String

Tekst do wyszukania.

Zwraca

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

Przykłady

W poniższym przykładzie kodu pokazano, jak używać ListBox.FindStringExact metody do wyszukiwania ListBox kontrolki dla elementu, który dokładnie pasuje do określonego ciągu. Jeśli nie znaleziono żadnych elementów pasujących do ciągu wyszukiwania, zwraca wartość -1, FindStringExact 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 FindMySpecificString( 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->FindStringExact( searchString );

         // Determine if a valid index is returned. Select the item if it is valid.
         if ( index != ListBox::NoMatches )
                  listBox1->SetSelected( index, true );
         else
                  MessageBox::Show( "The search string did not find any items in the ListBox that exactly match the specified search string" );
      }
   }
private void FindMySpecificString(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.FindStringExact(searchString);
      // Determine if a valid index is returned. Select the item if it is valid.
      if (index != ListBox.NoMatches)
         listBox1.SetSelected(index,true);
      else
         MessageBox.Show("The search string did not find any items in the ListBox that exactly match the specified search string");
   }
}
Private Sub FindMySpecificString(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.FindStringExact(searchString)
      ' Determine if a valid index is returned. Select the item if it is valid.
      If index <> ListBox.NoMatches Then
         listBox1.SetSelected(index, True)
      Else
         MessageBox.Show("The search string did not find any items in the ListBox that exactly match the specified search string")
      End If
   End If
End Sub

Uwagi

Wyszukiwanie wykonywane przez tę metodę nie uwzględnia wielkości liter. Wyszukiwanie szuka dokładnego dopasowania do wyrazów określonych w parametrze ciągu wyszukiwania . s Ta metoda służy do wyszukiwania pierwszego elementu zgodnego 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 ListBoxpliku , możesz użyć wersji FindStringExact metody , która udostępnia parametr służący do określania indeksu początkowego ListBoxw obiekcie . Jeśli chcesz wykonać wyszukiwanie częściowe wyrazów zamiast dokładnego dopasowania wyrazów, użyj FindString metody .

Zobacz też

Dotyczy

FindStringExact(String, Int32)

Znajduje pierwszy element w obiekcie ListBox , który dokładnie pasuje do określonego ciągu. Wyszukiwanie rozpoczyna się od określonego indeksu początkowego.

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

Parametry

s
String

Tekst do wyszukania.

startIndex
Int32

Indeks zerowy elementu przed pierwszym elementem do przeszukania. Ustaw wartość ujemną (-1), aby wyszukiwać od początku kontrolki.

Zwraca

Indeks oparty na zerze pierwszego znalezionego elementu; Metoda 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

W poniższym przykładzie kodu pokazano, jak używać FindStringExact metody do wyszukiwania wszystkich elementów w obiekcie ListBox , które dokładnie pasują do określonego tekstu wyszukiwania. W przykładzie użyto wersji FindStringExact metody , która umożliwia określenie początkowego indeksu wyszukiwania, z którego ma być stale przeszukiwane wszystkie elementy w obiekcie ListBox. W przykładzie pokazano również, jak określić, kiedy FindStringExact metoda rozpoczyna wyszukiwanie od góry listy po osiągnięciu dolnej części listy elementów, aby zapobiec rekursywnemu wyszukiwaniu. Gdy elementy zostaną znalezione w elemecie ListBox, zostaną wybrane przy użyciu SetSelected metody .

private:
   void FindAllOfMyExactStrings( 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->FindStringExact( searchString, x );

            // If no item is found that matches exit.
            if ( x != -1 )
            {
               // Since the FindStringExact 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 FindAllOfMyExactStrings(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.FindStringExact(searchString, x);
         // If no item is found that matches exit.
         if (x != -1)
         {
            // Since the FindStringExact 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 FindAllOfMyExactStrings(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.FindStringExact(searchString, x)
         ' If no item is found that matches exit.
         If x <> -1 Then
            ' Since the FindStringExact 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 uwzględnia wielkości liter. Wyszukiwanie wyszukuje wyrazy, które dokładnie 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żesz wykonać zadania, takie jak usunięcie elementu zawierającego tekst wyszukiwania przy użyciu Remove metody lub zmianę 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 kolejnych wystąpień tekstu wyszukiwania przez określenie pozycji indeksu w startIndex parametrze elementu po pierwszym znalezionym wystąpieniu tekstu wyszukiwania. Jeśli chcesz wykonać wyszukiwanie częściowe wyrazów zamiast dokładnego dopasowania wyrazów, użyj FindString metody .

Uwaga

Gdy wyszukiwanie osiągnie dół ListBoxelementu , kontynuuje wyszukiwanie od góry ListBox z powrotem do elementu określonego startIndex przez parametr .

Zobacz też

Dotyczy