我正在用VB.NET开发桌面搜索引擎 我正在使用ComboBox来指定搜索查询(字符串)。 我希望ComboBox能够记住并显示最近的查询。 我还希望ComboBox在用户输入时尝试自动填充查询。
实施此方法的最佳方法是什么?
答案 0 :(得分:1)
毫无疑问,这可以更优雅地完成,但这里是基本原则(对任何语法问题道歉,我不是一个VB人):
在KeyUp事件中:
if e.KeyCode <> Keys.Back [...]
idx = myCombo.FindString(myCombo.Text)
s = myCombo.GetItemText(idx)
myCombo.Text = s
请注意,这会改写用户输入的所有内容(销毁案例)。您可以通过添加“缺失”部分来改善这一点:
stringToAppend = s.SubString(myCombo.Text.Length) myCombo.Text = myCombo.Text + stringToAppend
最后,选择新文字,以便他们可以继续输入:
myCombo.SelectionStart = myCombo.Text.Length - stringToAppend.Length myCombo.SelectionLength = stringToAppend.Length
答案 1 :(得分:0)
您可能还想查看来自vbAccelerator.com的this,它是VB.NET中自动完成的基本起点。 vbAccelerator代码通常是高质量的。