Aracılığıyla paylaş


ListBox.FindString Yöntem

Tanım

içinde ListBox belirtilen dizeyle başlayan ilk öğeyi bulur.

Aşırı Yüklemeler

FindString(String)

içinde ListBox belirtilen dizeyle başlayan ilk öğeyi bulur.

FindString(String, Int32)

içinde ListBox belirtilen dizeyle başlayan ilk öğeyi bulur. Arama belirli bir başlangıç dizininde başlar.

FindString(String)

içinde ListBox belirtilen dizeyle başlayan ilk öğeyi bulur.

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

Parametreler

s
String

Aranacak metin.

Döndürülenler

Int32

Bulunan ilk öğenin sıfır tabanlı dizini; eşleşme bulunmazsa döndürür ListBox.NoMatches .

Özel durumlar

Parametrenin s değeri -1'den küçük veya öğe sayısına eşit veya ondan büyük.

Örnekler

Aşağıdaki kod örneği, içindeki bir dizenin FindString ListBoxilk örneğini aramak için yönteminin nasıl kullanılacağını gösterir. Arama dizesiyle FindString eşleşen hiçbir öğe bulunmazsa bir -1 değeri döndürür ve örnekte bir MessageBoxgörüntülenir. Arama metniyle eşleşen bir öğe bulunursa, örnekte içindeki öğeyi ListBoxseçmek için yöntemi kullanılırSetSelected.

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

Açıklamalar

Bu yöntem tarafından gerçekleştirilen arama büyük/küçük harfe duyarlı değildir. Arama, belirtilen arama dizesi parametresiyle skısmen eşleşen sözcükleri arar. Belirtilen dizeyle eşleşen ilk öğeyi aramak için bu yöntemi kullanabilirsiniz. Ardından yöntemini kullanarak Remove veya öğenin metnini değiştirerek arama metnini içeren öğeyi kaldırma gibi görevleri gerçekleştirebilirsiniz. Belirtilen metni bulduğunuzda, içindeki ListBoxmetnin diğer örneklerini aramak istiyorsanız, içinde bir başlangıç dizini belirtmek için bir parametre sağlayan yöntemin FindString ListBoxsürümünü kullanabilirsiniz. Kısmi eşleşme yerine tam sözcük eşleşmesi için arama yapmak istiyorsanız yöntemini kullanın FindStringExact .

Ayrıca bkz.

Şunlara uygulanır

FindString(String, Int32)

içinde ListBox belirtilen dizeyle başlayan ilk öğeyi bulur. Arama belirli bir başlangıç dizininde başlar.

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

Parametreler

s
String

Aranacak metin.

startIndex
Int32

Aranacak ilk öğeden önceki öğenin sıfır tabanlı dizini. Denetimin başından itibaren aramak için negatif bir (-1) olarak ayarlayın.

Döndürülenler

Int32

Bulunan ilk öğenin sıfır tabanlı dizini; eşleşme bulunmazsa döndürür ListBox.NoMatches .

Özel durumlar

startIndex parametresi sıfırdan küçük veya sınıfın özelliğinin Count ListBox.ObjectCollection değerine eşit veya ondan büyük.

Örnekler

Aşağıdaki kod örneği, öğesindeki arama ListBoxmetninin FindString tüm örneklerini aramak için yönteminin nasıl kullanılacağını gösterir. Örnekte, içindeki tüm öğelerde ListBoxsürekli arama yapabileceğiniz bir başlangıç arama dizini belirtmenize olanak tanıyan yöntemin sürümü FindString kullanılır. Örnekte, özyinelemeli aramayı önlemek için yöntemin FindString öğe listesinin en altına ulaştıktan sonra listenin en üstünden aramaya ne zaman başladığının nasıl belirleneceği de gösterilmektedir. öğeleri içinde ListBoxbulunduktan sonra yöntemi kullanılarak SetSelected seçilirler.

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

Açıklamalar

Bu yöntem tarafından gerçekleştirilen arama büyük/küçük harfe duyarlı değildir. Arama, belirtilen arama dizesi parametresiyle skısmen eşleşen sözcükleri arar. Bu yöntemi, öğesi listesinde belirtilen başlangıç dizininde belirtilen dizeyle eşleşen ilk öğeyi aramak için ListBoxkullanabilirsiniz. Ardından yöntemini kullanarak Remove veya öğenin metnini değiştirerek arama metnini içeren öğeyi kaldırma gibi görevleri gerçekleştirebilirsiniz. Bu yöntem genellikle bu yöntemin başlangıç dizini belirtmeyen sürümü kullanılarak bir çağrı yapıldıktan sonra kullanılır. Listede ilk öğe bulunduktan sonra bu yöntem genellikle arama metninin ilk bulunan örneğinden sonra öğenin parametresindeki startIndex dizin konumunu belirterek arama metninin diğer örneklerini bulmak için kullanılır. Kısmi eşleşme yerine tam sözcük eşleşmesi için arama yapmak istiyorsanız yöntemini kullanın FindStringExact .

Not

Arama öğesinin ListBoxen altına ulaştığında, gerinin en üstünden ListBox parametresi tarafından startIndex belirtilen öğeye kadar aramaya devam eder.

Ayrıca bkz.

Şunlara uygulanır