Teilen über


ListBox.FindString Methode

Definition

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

Überlädt

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 an einem bestimmten Startindex.

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

Int32

Der nullbasierte Index des ersten gefundenen Elements. Wenn keine Übereinstimmung gefunden wurde, wird ListBox.NoMatches zurückgegeben.

Ausnahmen

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

Beispiele

Im folgenden Codebeispiel wird veranschaulicht, wie die Methode verwendet FindString wird, um nach der ersten Instanz einer Zeichenfolge in einer ListBoxZeichenfolge zu suchen. Wenn keine Elemente gefunden werden, die mit der Suchzeichenfolge FindString übereinstimmen, wird ein -1-Wert zurückgegeben, und das Beispiel zeigt eine MessageBox. Wenn ein Element gefunden wird, das dem Suchtext entspricht, verwendet das Beispiel die SetSelected Methode, um das Element in der ListBoxDatei auszuwählen.

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

Die durch diese Methode ausgeführte Suche ist nicht groß- und kleinschreibungsgeschützt. Die Suche sucht nach Wörtern, die teilweise dem angegebenen Suchzeichenfolgenparameter entsprechen. s Sie können diese Methode verwenden, um nach dem ersten Element zu 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, wenn Sie nach anderen Instanzen des Texts im Text suchen möchten, können Sie die Version der FindString Methode verwenden, die einen Parameter für die Angabe eines Startindexes innerhalb ListBoxder ListBox. Verwenden Sie die FindStringExact Methode, wenn Sie eine Suche nach einer exakten Wortgleichung anstelle einer teiliellen Übereinstimmung ausführen möchten.

Siehe auch

Gilt für

FindString(String, Int32)

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

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 vor dem ersten zu durchsuchenden Element. Legen Sie -1 fest, um die Suche am Anfang des Steuerelements zu beginnen.

Gibt zurück

Int32

Der nullbasierte Index des ersten gefundenen Elements. Wenn keine Übereinstimmung gefunden wurde, wird ListBox.NoMatches zurückgegeben.

Ausnahmen

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

Beispiele

Im folgenden Codebeispiel wird veranschaulicht, wie die Methode verwendet FindString wird, um nach allen Instanzen des Suchtexts in den Elementen des Suchtexts ListBoxzu suchen. Im Beispiel wird die Version der Methode verwendet, mit der FindString Sie einen Startsucheindex angeben können, aus dem eine fortlaufende Suche aller Elemente im Bereich ListBoxausgeführt werden soll. Im Beispiel wird auch veranschaulicht, wie sie bestimmen, wann die FindString Methode beginnt, nach dem Ende der Liste der Elemente nach dem Ende der Liste der Elemente zu suchen, um eine rekursive Suche zu verhindern. Sobald Elemente in der Methode gefunden werden, werden sie mithilfe der ListBoxSetSelected 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

Die durch diese Methode ausgeführte Suche ist nicht groß- und kleinschreibungsgeschützt. Die Suche sucht nach Wörtern, die teilweise dem angegebenen Suchzeichenfolgenparameter entsprechen. s Sie können diese Methode verwenden, um nach dem ersten Element zu suchen, das der angegebenen Zeichenfolge im angegebenen Startindex innerhalb der Liste der Elemente für den ListBoxangegebenen Startindex 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. Diese Methode wird in der Regel verwendet, nachdem ein Aufruf mit der Version dieser Methode durchgeführt wurde, die keinen Startindex angibt. Nachdem ein initiales Element in der Liste gefunden wurde, wird diese Methode in der Regel verwendet, um weitere Instanzen des Suchtexts zu finden, indem sie die Indexposition im startIndex Parameter des Elements nach der ersten gefundenen Instanz des Suchtexts angeben. Verwenden Sie die FindStringExact Methode, wenn Sie eine Suche nach einer exakten Wortgleichung anstelle einer teiliellen Übereinstimmung ausführen möchten.

Hinweis

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

Siehe auch

Gilt für