我有一个包含所有TimeZone.Displayname
所有这些显示名称都是:
(GMT +09:00)首尔,(格林威治标准时间-06:00)中部时间(美国和加拿大)等。
有没有办法让按键事件搜索“)”之后的第一个字母?现在它只识别组合框字符串的第一个字符“(”
修改
更改了标题,因为时区与问题无关。
答案 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...
...代替 有两列的列表,所以你有原始的列值和修改后的显示。你的组合框可以有一个“显示”值和“值”......