Всем привет, столкнулся с проблемой небольшой.
Есть обычный листбокс, в нем список для примера:
ааб
абс
асд
еек
ееу
ехт
Так вот задача реализовать поиск по этому списку, юзверь нажимает последовательность букв (листбокс в фокусе) и ему подсвечивается первый элемент, начинающийся с этих букв.
Для начала реализовал следующим образом:
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 строка, содержащая ввод юзверя, таймер ее просто очищает через некоторый интервал времени.
Проблема в том что после нажатия, например, кнопки Е, листбокс выделяет не первый элемент в списке, начинающийся с буквы Е, а второй, тоже самое с другими буквами, всегда выделяется второй элемент.
Может кто что подсказать, хотя бы в какую сторону копать.