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


ListBox.FindStringExact Метод

Определение

Ищет первую позицию в ListBox, точно соответствующую указанной строке.

Перегрузки

FindStringExact(String)

Ищет первую позицию в ListBox, точно соответствующую указанной строке.

FindStringExact(String, Int32)

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

FindStringExact(String)

Ищет первую позицию в ListBox, точно соответствующую указанной строке.

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

Параметры

s
String

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

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

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

Примеры

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

Комментарии

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

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

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

FindStringExact(String, Int32)

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

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

Параметры

s
String

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

startIndex
Int32

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

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

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

Исключения

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

Примеры

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

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

Комментарии

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

Примечание

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

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

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