我在c#表单中有一个简单的组合框,它是从一个数组中填充的。
我已将AutoCompleteMode设置为SuggestAppend,将AutoCompleteSource设置为ListItems。这允许我通过在组合框中键入一个字符串来快速筛选列表,并在我键入时显示匹配的项目。这非常有效。
但是,当下拉列表打开并且我开始输入时,已过滤的列表会显示在下拉列表的顶部,但我无法从已过滤的列表中进行选择,只能从下拉列表中进行选择。
用户在组合框中输入字符后,如何在打开时禁用下拉列表。
目前只有一种方法用于组合框
private void SelectJobDropdown_SelectedIndexChanged(object sender, EventArgs e)
{
//plenty of code here
}
我已经尝试为组合框添加其他方法,例如KeyPress或Keydown,但似乎没有任何方法可用,因为我很可能做错了
使用Visual Studio 2015
答案 0 :(得分:0)
如果我理解正确,你就不喜欢旧的下拉列表上的重叠列表了。由于您在ComboBox
中输入字母,我建议您使用comboBox1_TextUpdate
事件。这段很好的代码应该可以解决您的问题:
private void comboBox1_TextUpdate(object sender, EventArgs e)
{
comboBox1.DropDownStyle = ComboBoxStyle.Simple;
指定是否始终显示列表或列表是否显示在下拉列表中[...]
指定列表始终可见,文本部分可编辑。这意味着用户可以输入新值,而不仅限于在列表中选择现有值。
将删除原始下拉列表(长列表),仅保留过滤后的结果。