我想在输入组合框时更新组合框的内容。我正在使用下面的代码,但显然我做错了什么;即使在调试控制台上,内容也不会被过滤和更新。当我删除组合框中的最后一个字符时,调试控制台才会更新。这是带有debug.writeline版本的代码(我将使用原始代码中组合框中列表中出现的第一条记录)。
private void comboBox1_TextUpdate(object sender, EventArgs e)
{
var query = ds.Tables[0].AsEnumerable()
.Where(d => d.Field<string>("FirstName").StartsWith(comboBox1.Text))
.Select(d => d.Field<string>("FirstName"));
foreach (string s in query)
Debug.WriteLine(s);
}
更新:看起来我的数据库有问题。上面的代码只是工作,但它需要是textchanged事件,而不是textupdate。 感谢您的贡献。
答案 0 :(得分:1)
您似乎正在尝试实现某种自动完成功能。使用TextBox
并使用其AutoCompleteCustomSource
,AutoCompleteMode
和AutoCompleteSource
属性。
答案 1 :(得分:1)
您可能希望改为处理TextChanged事件。
TextChanged:&#34;当Text属性值发生变化时发生。&#34; http://msdn.microsoft.com/en-us/library/system.windows.forms.control.textchanged.aspx
TextUpdate:&#34;在控件格式化文本时,但在显示文本之前发生。&#34; http://msdn.microsoft.com/en-us/library/system.windows.forms.combobox.textupdate.aspx