Справочная информация : я создаю приложение базы данных для хранения информации о моей огромной коллекции фильмов. Список содержит сотни элементов, поэтому я решил реализовать функцию поиска, которая бы выделяла все элементы, содержащие определенную строку. Иногда трудно вспомнить название всего фильма, поэтому я подумал, что это пригодится.
Я нашел этот полезный код на сайте Microsoft, который выделяет все элементы в списке, которые содержат определенную строку. Как я могу изменить его для поиска по каждой строке полностью?
В настоящее время код ищет только те элементы, которые начинают со строки поиска, вместо того, чтобы видеть, содержит ли она строку поиска где-либо еще. Я натолкнулся на метод listbox.items.contains () в Google, хотя понятия не имею, как преобразовать для него свой код.
http://forums.asp.net/t/1094277.aspx/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);
}
}