在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]);
}
}
}
答案 0 :(得分:1)
我认为问题是你在comboBox1.Items.Clear()
清除ComboBox中的所有项目,然后在comboBox1.Text
访问其内容可能是你应该尝试不同的方式。或者在最后清除它。
答案 1 :(得分:1)
您可能必须在此处使用Win32 API(使用PInvoke),方法是向组合框发送相应的消息,以便在“事件处理完成后”显示搜索结果
请参阅以下网址,您可以找到您要找的内容:
http://msdn.microsoft.com/en-us/library/bb775792(VS.85).aspx