动态添加值时ComboBox自动完成的问题

时间:2011-06-22 11:34:18

标签: c# winforms combobox

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

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

如果它应该建议值,我怎样才能使它首先添加值或再次检查组合框?

这是我的代码:

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]);
        }
    }
}

2 个答案:

答案 0 :(得分:1)

我认为问题是你在comboBox1.Items.Clear()清除ComboBox中的所有项目,然后在comboBox1.Text访问其内容可能是你应该尝试不同的方式。或者在最后清除它。

答案 1 :(得分:1)

您可能必须在此处使用Win32 API(使用PInvoke),方法是向组合框发送相应的消息,以便在“事件处理完成后”显示搜索结果

请参阅以下网址,您可以找到您要找的内容:

http://msdn.microsoft.com/en-us/library/bb775792(VS.85).aspx