当用户将文本输入到combox中时如何禁用combox下拉菜单

我有一个简单的组合框在C#表单中,从数组中填充。

我已将AutoCompleteMode设置为SuggestAppend并将AutoCompleteSource设置为ListItems。 这使我可以通过在组合框中输入一个字符串来快速筛选列表,并在我输入时显示匹配的项目。 这很好。

但是,当下拉列表打开并开始输入时,已过滤列表会显示在下拉列表的顶部,但我无法从已过滤列表中进行选择,而只能从下拉列表中进行选择。

如何在用户在组合框中输入字符时立即禁用下拉列表。

目前只有一种组合框的方法

private void SelectJobDropdown_SelectedIndexChanged(object sender, EventArgs e)
        {
            //plenty of code here 
        }

我已经尝试添加组合框的其他方法,如KeyPress或Keydown,但似乎没有工作,因为我很可能做错了什么

使用Visual Studio 2015


如果我正确地理解了你,你不会喜欢旧的下拉菜单中的重叠列表。 既然你在ComboBox输入字母,我会建议使用comboBox1_TextUpdate事件。 这段不错的代码可以解决你的问题:

private void comboBox1_TextUpdate(object sender, EventArgs e)
{
    comboBox1.DropDownStyle = ComboBoxStyle.Simple;

设置ComboBox.DropDownStyle属性,其中

指定是否始终显示列表或列表是否显示在下拉列表中

ComboBoxStyle.Simple,哪个

指定列表始终可见并且文本部分可编辑。 这意味着用户可以输入新值并且不限于选择列表中的现有值。

将删除原来的下拉列表(长列表),只保留过滤结果。

链接地址: http://www.djcxy.com/p/60907.html

上一篇: How to disable combox dropdown when user enters text into the combox

下一篇: allow typed value OR autocomplete