ListBox.FindString Methode

Definition

Sucht das erste Element in der ListBox , das mit der angegebenen Zeichenfolge beginnt.

Überlädt

Name Beschreibung
FindString(String)

Sucht das erste Element in der ListBox , das mit der angegebenen Zeichenfolge beginnt.

FindString(String, Int32)

Sucht das erste Element in der ListBox , das mit der angegebenen Zeichenfolge beginnt. Die Suche beginnt mit einem bestimmten Anfangsindex.

FindString(String)

Sucht das erste Element in der ListBox , das mit der angegebenen Zeichenfolge beginnt.

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

Parameter

s
String

Der zu suchende Text.

Gibt zurück

Der nullbasierte Index des ersten gefundenen Elements; gibt zurück ListBox.NoMatches , wenn keine Übereinstimmung gefunden wird.

Ausnahmen

Der Wert des s Parameters ist kleiner als -1 oder größer als oder gleich der Elementanzahl.

Beispiele

Im folgenden Codebeispiel wird veranschaulicht, wie die FindString Methode zum Suchen nach der ersten Instanz einer Zeichenfolge in einer ListBoxZeichenfolge verwendet wird. Wenn keine Elemente gefunden werden, die mit der Suchzeichenfolge FindString übereinstimmen, wird ein -1 Wert zurückgegeben, und im Beispiel wird ein MessageBox. Wenn ein Element gefunden wird, das dem Suchtext entspricht, verwendet das Beispiel die SetSelected Methode, um das Element in der 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

Hinweise

Bei der von dieser Methode durchgeführten Suche wird die Groß-/Kleinschreibung nicht beachtet. Die Suche sucht nach Wörtern, die teilweise mit dem angegebenen Suchzeichenfolgenparameter übereinstimmen, s. Mit dieser Methode können Sie nach dem ersten Element suchen, das der angegebenen Zeichenfolge entspricht. Anschließend können Sie Aufgaben wie das Entfernen des Elements ausführen, das den Suchtext enthält, indem Sie die Remove Methode verwenden oder den Text des Elements ändern. Nachdem Sie den angegebenen Text gefunden haben, können Sie, wenn Sie nach anderen Instanzen des Texts im ListBoxText suchen möchten, die Version der Methode verwenden, die FindString einen Parameter zum Angeben eines Startindex in der ListBox. Wenn Sie eine Suche nach einer exakten Wortabgleichung anstelle einer teilweisen Übereinstimmung durchführen möchten, verwenden Sie die FindStringExact Methode.

Weitere Informationen

Gilt für:

FindString(String, Int32)

Sucht das erste Element in der ListBox , das mit der angegebenen Zeichenfolge beginnt. Die Suche beginnt mit einem bestimmten Anfangsindex.

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

Parameter

s
String

Der zu suchende Text.

startIndex
Int32

Der nullbasierte Index des Elements, bevor das erste Element durchsucht werden soll. Wird auf negative (-1) festgelegt, um ab dem Anfang des Steuerelements zu suchen.

Gibt zurück

Der nullbasierte Index des ersten gefundenen Elements; gibt zurück ListBox.NoMatches , wenn keine Übereinstimmung gefunden wird.

Ausnahmen

Der startIndex Parameter ist kleiner als null oder größer als oder gleich dem Wert der Count Eigenschaft der ListBox.ObjectCollection Klasse.

Beispiele

Im folgenden Codebeispiel wird veranschaulicht, wie die Methode verwendet wird FindString , um nach allen Instanzen des Suchtexts in den Elementen der Datei ListBoxzu suchen. Im Beispiel wird die Version der Methode verwendet, mit der FindString Sie einen Startsuchindex angeben können, aus dem eine kontinuierliche Suche aller Elemente in der ListBoxDatei ausgeführt werden soll. Das Beispiel veranschaulicht außerdem, wie Sie bestimmen können, wann die FindString Methode mit der Suche vom Anfang der Liste beginnt, nachdem sie das Ende der Liste der Elemente erreicht hat, um eine rekursive Suche zu verhindern. Sobald Elemente in der ListBoxDatei gefunden wurden, werden sie mithilfe der SetSelected Methode ausgewählt.

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

Hinweise

Bei der von dieser Methode durchgeführten Suche wird die Groß-/Kleinschreibung nicht beachtet. Die Suche sucht nach Wörtern, die teilweise mit dem angegebenen Suchzeichenfolgenparameter übereinstimmen, s. Sie können diese Methode verwenden, um nach dem ersten Element zu suchen, das der angegebenen Zeichenfolge am angegebenen Anfangsindex innerhalb der Liste der Elemente für die ListBox. Anschließend können Sie Aufgaben wie das Entfernen des Elements ausführen, das den Suchtext enthält, indem Sie die Remove Methode verwenden oder den Text des Elements ändern. Diese Methode wird in der Regel verwendet, nachdem ein Aufruf mit der Version dieser Methode erfolgt ist, die keinen Startindex angibt. Sobald ein anfängliches Element in der Liste gefunden wurde, wird diese Methode in der Regel verwendet, um weitere Instanzen des Suchtexts zu finden, indem die Indexposition im startIndex Parameter des Elements nach der ersten gefundenen Instanz des Suchtexts angegeben wird. Wenn Sie eine Suche nach einer exakten Wortabgleichung anstelle einer teilweisen Übereinstimmung durchführen möchten, verwenden Sie die FindStringExact Methode.

Note

Wenn die Suche den unteren Rand des ListBoxSuchvorgangs erreicht, wird die Suche von oben ListBox nach dem durch den startIndex Parameter angegebenen Element fortgesetzt.

Weitere Informationen

Gilt für: