C# ListBox поиск
От: Felas  
Дата: 31.01.11 14:36
Оценка:
Всем привет, столкнулся с проблемой небольшой.
Есть обычный листбокс, в нем список для примера:
ааб
абс
асд
еек
ееу
ехт
Так вот задача реализовать поиск по этому списку, юзверь нажимает последовательность букв (листбокс в фокусе) и ему подсвечивается первый элемент, начинающийся с этих букв.
Для начала реализовал следующим образом:

        private void listBox_AllChannels_KeyPress(object sender, KeyPressEventArgs e)
        {
            timer_SearchClean.Enabled = false;

            Search += e.KeyChar;

            for (int i = 0; i < listBox_AllChannels.Items.Count; i++)
            {
                string str = listBox_AllChannels.Items[i].ToString();

                if (str.StartsWith(Search))
                {
                    listBox_AllChannels.ClearSelected();

                    listBox_AllChannels.SelectedItem = listBox_AllChannels.Items[i];

                    break;
                }
            }

            timer_SearchClean.Enabled = true;
        }


Search строка, содержащая ввод юзверя, таймер ее просто очищает через некоторый интервал времени.
Проблема в том что после нажатия, например, кнопки Е, листбокс выделяет не первый элемент в списке, начинающийся с буквы Е, а второй, тоже самое с другими буквами, всегда выделяется второй элемент.
Может кто что подсказать, хотя бы в какую сторону копать.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.