C# 动态添加值时ComboBox自动完成出现问题

C# 动态添加值时ComboBox自动完成出现问题,c#,winforms,combobox,C#,Winforms,Combobox,在WinForms应用程序中,我有一个组合框,我试图根据用户输入填充值。例如,如果用户键入m,它应该显示以字母m开头的所有值,但我不想在开头添加所有值,因为有很多值 为了实现这一点,我创建了一个事件textchanged,当用户输入例如字母m时,我的程序进入我的数据库,并将字母m的所有值添加到组合框中。 问题是,我认为combobox首先看到是否应该自动完成(建议)值,然后才添加值 我怎样才能让它先添加值,或者让组合框再次选中它是否应该建议值 这是我的密码: private void combo

在WinForms应用程序中,我有一个组合框,我试图根据用户输入填充值。例如,如果用户键入
m
,它应该显示以字母
m
开头的所有值,但我不想在开头添加所有值,因为有很多值

为了实现这一点,我创建了一个事件
textchanged
,当用户输入例如字母
m
时,我的程序进入我的数据库,并将字母
m
的所有值添加到组合框中。
问题是,我认为combobox首先看到是否应该自动完成(建议)值,然后才添加值

我怎样才能让它先添加值,或者让组合框再次选中它是否应该建议值

这是我的密码:

private void comboBox1_TextChanged(object sender, EventArgs e)
{
    comboBox1.Items.Clear();
    for (int i = 0; i < MilkProducts.Length; i++)
    {
        if (MilkProducts[i].StartsWith(comboBox1.Text))
        {
            comboBox1.Items.Add(MilkProducts[i]);
        }
    }
}
private void comboBox1\u text已更改(对象发送方,事件参数e)
{
comboBox1.Items.Clear();
对于(int i=0;i
我认为问题在于您正在清除位于
comboBox1.items.Clear()
的ComboBox中的所有项目,然后在
Combox1.Text
访问其内容。可能您应该尝试不同的方法。或者在最后清除它

似乎您必须在这里使用Win32 API(使用PInvoke),将适当的消息发送到组合框,以在事件处理完成后显示搜索结果

请参考以下URL,您可以找到您正在查找的内容:


不确定到底是什么问题。。你能更好地解释一下发生了什么和你想发生什么吗?你有没有尝试过在组合框按键事件中这样做?我希望当用户向组合框中写入文本时,会向组合框中添加一系列选项,每次他添加一个字母或更改它需要删除所有以前的项目并添加新的项目时,都会这样做,问题是组合框首先检查是否需要显示任何内容,因为没有任何项目(我的事件仅在系统事件之后运行),所以它不显示任何内容。@Ankur,我如何知道按下了哪个键?它应该是多语言的,当我使用e.keycode时,它只是用英语显示字母…,没关系,我想了怎么做。@Ankur,当我使用keypress时,它的工作原理与textchanged一样,首先是组合框的系统事件,它检查是否有任何项目要显示,然后是我添加项目的事件no,我需要一开始就澄清,最终澄清会有什么帮助?我需要清除所有以前的项目并添加新项目。。。