【发布时间】:2021-06-22 03:33:30
【问题描述】:
I want this functionalitymy 组合框有多个值。例如:RJ11、RJ12、RJ13等。 AutoCompleteMode 设置为 append,AutoCompleteSource 设置为 listItems。我想要的只是当我在组合框中输入 rj 时,它会在组合框的文本字段中提示我 rj11,当我按下向下箭头键时,它应该选择 rj11,但它正在做的是继续搜索下一个可能的匹配项。
我试过了:
private void comboBox1_KeyDown(object sender, KeyEventArgs e)
{
if(e.KeyCode == Keys.Down)
{
comboBox1.SelectedIndex = comboBox1.FindStringExact(comboBox1.Text);
}
}
但它不起作用。 我对winform和编程很陌生。 请帮忙。 是的,对不起我的英语不好。
【问题讨论】:
-
当您按下 Enter 键时,选择已完成。无需在 KeyDown 处理程序中设置任何内容。
-
@Jimi 如何将其设置为向下箭头键或我想要的任何其他键而不是 Enter ?
-
在这种情况下,不确定为什么要覆盖人们习惯的默认行为。无论如何,如果您想在 ListControl 上的选择被移动时执行任何操作,您可以使用这个自定义控件:Raise an event when I hover the mouse over a ComboBox item。它是为 .Net FW 4.8 设计的(使用此版本的新功能),但随后进行了修改以与以前版本的框架兼容。它也应该在 .Net 5 中工作,但未经测试。
-
您需要订阅公共
ListItemSelectionChanged事件才能在 ListControl 的元素被选中/突出显示时收到通知。
标签: visual-studio winforms combobox ado.net