Combobox DropDownList和按键

时间:2010-05-07 20:06:22

标签: c# combobox drop-down-menu keypress

我有一个包含所有TimeZone.Displayname

的下拉列表

所有这些显示名称都是:

(GMT +09:00)首尔,(格林威治标准时间-06:00)中部时间(美国和加拿大)等。

有没有办法让按键事件搜索“)”之后的第一个字母?现在它只识别组合框字符串的第一个字符“(”

修改

更改了标题,因为时区与问题无关。

2 个答案:

答案 0 :(得分:3)

您必须自己提供keydown搜索功能。例如,覆盖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;}
}

答案 1 :(得分:0)

我会建立你的列表并将字符串顺序交换到

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

...代替 有两列的列表,所以你有原始的列值和修改后的显示。你的组合框可以有一个“显示”值和“值”......