У меня есть текстовое поле в моей форме, которое я использую в качестве строки поиска для моего списка.В настоящее время у меня есть текстовое поле, настроенное для активного выбора элемента в списке при вводе следующего кода:
private void TextBox1_TextChanged(object sender, EventArgs e)
{
var textBox = (TextBox)sender;
listBox1.SelectedIndex = textBox.TextLength == 0 ?
-1 : listBox1.FindString(textBox.Text);
}
Что я хотел бы сделать, так это уметь использовать стрелку вверх и внизклавиши для настройки того, что выбрано.Например, если список содержит два элемента: Test1 и Test2, когда вы начнете вводить «t», будет выбран test1.В отличие от необходимости заканчивать вводить «test2», чтобы изменить то, что выбрано, я хотел бы иметь возможность набрать «t», а затем нажать клавишу со стрелкой вниз, чтобы выбрать test2, но сохранить фокус в текстовом поле.
У меня естьпопытался использовать следующее, однако при нажатии клавиши со стрелкой вверх или вниз курсор в текстовом поле настраивается вместо selectedIndex
private void TextBox1_KeyUp(object sender, KeyEventArgs e)
{
int index = listBox1.SelectedIndex;
index = index--;
listBox1.SelectedIndex = index;
}
private void TextBox1_KeyDown(object sender, KeyEventArgs e)
{
int index = listBox1.SelectedIndex;
index = index++;
listBox1.SelectedIndex = index;
}