Поделиться через


ListBox.FindString Метод

Определение

Производит поиск первого элемента в ListBox, которая начинается с указанной строки.

Перегрузки

FindString(String)

Производит поиск первого элемента в ListBox, которая начинается с указанной строки.

FindString(String, Int32)

Производит поиск первого элемента в ListBox, которая начинается с указанной строки. Поиск начинается с указанного начального индекса.

FindString(String)

Производит поиск первого элемента в ListBox, которая начинается с указанной строки.

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

Параметры

s
String

Текст для поиска.

Возвращаемое значение

Индекс первого найденного элемента (индексация ведется от нуля); если соответствующий элемент не найден, возвращается значение ListBox.NoMatches.

Исключения

Значение параметра s меньше -1 или больше или равно количеству элементов.

Примеры

В следующем примере кода показано, как использовать FindString метод для поиска первого экземпляра строки в ListBox. Если элементы, соответствующие строке FindString поиска, не найдены, возвращается значение -1 и в примере отображается MessageBox. Если найден элемент, соответствующий тексту поиска, в примере используется SetSelected метод для выбора элемента в 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

Комментарии

Поиск, выполняемый этим методом, не учитывает регистр. Поиск ищет слова, частично соответствующие указанному параметру строки поиска, s. Этот метод можно использовать для поиска первого элемента, соответствующего указанной строке. Затем можно выполнить такие задачи, как удаление элемента, содержащего текст поиска, с помощью Remove метода или изменение текста элемента. После того как вы найдете указанный текст, если вы хотите найти другие экземпляры текста в ListBox, можно использовать версию FindString метода , которая предоставляет параметр для указания начального индекса в ListBox. Если вы хотите выполнить поиск точного совпадения слов, а не частичного совпадения FindStringExact , используйте метод .

См. также раздел

Применяется к

FindString(String, Int32)

Производит поиск первого элемента в ListBox, которая начинается с указанной строки. Поиск начинается с указанного начального индекса.

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

Параметры

s
String

Текст для поиска.

startIndex
Int32

Индекс элемента перед первым искомым элементом (индексация ведется от нуля). Задается равным -1 для поиска с начала элемента управления.

Возвращаемое значение

Индекс первого найденного элемента (индексация ведется от нуля); если соответствующий элемент не найден, возвращается значение ListBox.NoMatches.

Исключения

Параметр startIndex меньше нуля либо больше или равен значению свойства Count класса ListBox.ObjectCollection.

Примеры

В следующем примере кода показано, как использовать FindString метод для поиска всех экземпляров текста поиска в элементах ListBox. В примере используется версия FindString метода , которая позволяет указать начальный индекс поиска, из которого будет выполняться непрерывный поиск всех элементов в ListBox. В примере также показано, как определить, когда FindString метод начинает поиск в верхней части списка после того, как он достигнет нижней части списка элементов, чтобы предотвратить рекурсивный поиск. После того как элементы будут найдены в ListBox, они выбираются с помощью SetSelected метода .

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

Комментарии

Поиск, выполняемый этим методом, не учитывает регистр. Поиск ищет слова, частично соответствующие указанному параметру строки поиска, s. Этот метод можно использовать для поиска первого элемента, который соответствует указанной строке в указанном начальном индексе в списке элементов для ListBox. Затем можно выполнить такие задачи, как удаление элемента, содержащего текст поиска, с помощью Remove метода или изменение текста элемента. Этот метод обычно используется после вызова с использованием версии этого метода, которая не указывает начальный индекс. После обнаружения исходного элемента в списке этот метод обычно используется для поиска дополнительных экземпляров текста поиска путем указания позиции индекса в startIndex параметре элемента после первого найденного экземпляра поискового текста. Если вы хотите выполнить поиск точного совпадения слов, а не частичного совпадения FindStringExact , используйте метод .

Примечание

Когда поиск достигает конца ListBox, он продолжает поиск в верхней части ListBox обратно в элемент, заданный параметром startIndex параметр.

См. также раздел

Применяется к