Combobox DropDownList и нажатие клавиш - PullRequest
2 голосов
/ 08 мая 2010

У меня есть выпадающий список, который содержит все TimeZone.Displayname

Все эти отображаемые имена имеют вид:

(GMT +09: 00) Сеул, (GMT -06: 00) Центральное время (США и Канада) и т. Д.

Есть ли способ получить событие нажатия клавиши, которое будет искать первую букву после ")"? Прямо сейчас он распознает только первый символ строки со списком, который является "("

EDIT

Изменено название, поскольку часовые пояса не имеют отношения к проблеме.

Ответы [ 2 ]

3 голосов
/ 08 мая 2010

Вы должны будете самостоятельно обеспечить функциональность поиска по ключу.Например, переопределите KeyPress, и всякий раз, когда нажимается клавиша, перебирайте список и отображайте нужный элемент списка.Или вы можете использовать метод ComboBox.FindString, чтобы найти строку, например:

private void comboBox1_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e)
{
   string findString = string.Empty;
    comboBox1.SelectedIndex = comboBox1.FindString(e.KeyChar.ToString());
   if(comboBox1.SelectedIndex > -1){e.Handled = true;}
}
0 голосов
/ 08 мая 2010

Я бы построил ваш список и поменял бы порядок строк на

Seoul (GMT +09:00)
Central Time (US & Canada)(GMT -06:00)
etc...

вместо ... иметь список из двух столбцов, поэтому у вас есть исходное значение столбца и исправлены для отображения. Ваш комбинированный список может иметь значение «display» и «Value» ...

...