ListBox.FindStringExact Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Znajduje pierwszy element w obiekcie ListBox , który dokładnie pasuje do określonego ciągu.
Przeciążenia
FindStringExact(String) |
Znajduje pierwszy element w obiekcie ListBox , który dokładnie pasuje do określonego ciągu. |
FindStringExact(String, Int32) |
Znajduje pierwszy element w obiekcie ListBox , który dokładnie pasuje do określonego ciągu. Wyszukiwanie rozpoczyna się od określonego indeksu początkowego. |
FindStringExact(String)
Znajduje pierwszy element w obiekcie ListBox , który dokładnie pasuje do określonego ciągu.
public:
int FindStringExact(System::String ^ s);
public int FindStringExact (string s);
member this.FindStringExact : string -> int
Public Function FindStringExact (s As String) As Integer
Parametry
- s
- String
Tekst do wyszukania.
Zwraca
Indeks oparty na zerze pierwszego znalezionego elementu; Metoda zwraca wartość ListBox.NoMatches
, jeśli nie znaleziono dopasowania.
Przykłady
W poniższym przykładzie kodu pokazano, jak używać ListBox.FindStringExact metody do wyszukiwania ListBox kontrolki dla elementu, który dokładnie pasuje do określonego ciągu. Jeśli nie znaleziono żadnych elementów pasujących do ciągu wyszukiwania, zwraca wartość -1, FindStringExact a w przykładzie zostanie wyświetlona wartość MessageBox. Jeśli element zostanie znaleziony zgodny z tekstem wyszukiwania, w przykładzie użyto SetSelected metody , aby wybrać element w elemencie 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
Uwagi
Wyszukiwanie wykonywane przez tę metodę nie uwzględnia wielkości liter. Wyszukiwanie szuka dokładnego dopasowania do wyrazów określonych w parametrze ciągu wyszukiwania . s
Ta metoda służy do wyszukiwania pierwszego elementu zgodnego z określonym ciągiem. Następnie można wykonywać zadania, takie jak usuwanie elementu zawierającego tekst wyszukiwania przy użyciu Remove metody lub zmiany tekstu elementu. Po znalezieniu określonego tekstu, jeśli chcesz wyszukać inne wystąpienia tekstu w ListBoxpliku , możesz użyć wersji FindStringExact metody , która udostępnia parametr służący do określania indeksu początkowego ListBoxw obiekcie . Jeśli chcesz wykonać wyszukiwanie częściowe wyrazów zamiast dokładnego dopasowania wyrazów, użyj FindString metody .
Zobacz też
Dotyczy
FindStringExact(String, Int32)
Znajduje pierwszy element w obiekcie ListBox , który dokładnie pasuje do określonego ciągu. Wyszukiwanie rozpoczyna się od określonego indeksu początkowego.
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
Parametry
- s
- String
Tekst do wyszukania.
- startIndex
- Int32
Indeks zerowy elementu przed pierwszym elementem do przeszukania. Ustaw wartość ujemną (-1), aby wyszukiwać od początku kontrolki.
Zwraca
Indeks oparty na zerze pierwszego znalezionego elementu; Metoda zwraca wartość ListBox.NoMatches
, jeśli nie znaleziono dopasowania.
Wyjątki
Parametr startIndex
jest mniejszy niż zero lub większy lub równy wartości Count właściwości ListBox.ObjectCollection klasy.
Przykłady
W poniższym przykładzie kodu pokazano, jak używać FindStringExact metody do wyszukiwania wszystkich elementów w obiekcie ListBox , które dokładnie pasują do określonego tekstu wyszukiwania. W przykładzie użyto wersji FindStringExact metody , która umożliwia określenie początkowego indeksu wyszukiwania, z którego ma być stale przeszukiwane wszystkie elementy w obiekcie ListBox. W przykładzie pokazano również, jak określić, kiedy FindStringExact metoda rozpoczyna wyszukiwanie od góry listy po osiągnięciu dolnej części listy elementów, aby zapobiec rekursywnemu wyszukiwaniu. Gdy elementy zostaną znalezione w elemecie ListBox, zostaną wybrane przy użyciu SetSelected metody .
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
Uwagi
Wyszukiwanie wykonywane przez tę metodę nie uwzględnia wielkości liter. Wyszukiwanie wyszukuje wyrazy, które dokładnie pasują do określonego parametru ciągu wyszukiwania, s
. Za pomocą tej metody można wyszukać pierwszy element zgodny z określonym ciągiem w określonym indeksie początkowym na liście elementów dla elementu ListBox. Następnie możesz wykonać zadania, takie jak usunięcie elementu zawierającego tekst wyszukiwania przy użyciu Remove metody lub zmianę tekstu elementu. Ta metoda jest zwykle używana po wywołaniu przy użyciu wersji tej metody, która nie określa indeksu początkowego. Po znalezieniu początkowego elementu na liście ta metoda jest zwykle używana do znajdowania kolejnych wystąpień tekstu wyszukiwania przez określenie pozycji indeksu w startIndex
parametrze elementu po pierwszym znalezionym wystąpieniu tekstu wyszukiwania. Jeśli chcesz wykonać wyszukiwanie częściowe wyrazów zamiast dokładnego dopasowania wyrazów, użyj FindString metody .
Uwaga
Gdy wyszukiwanie osiągnie dół ListBoxelementu , kontynuuje wyszukiwanie od góry ListBox z powrotem do elementu określonego startIndex
przez parametr .