- vb.net/
- Vb.net 可记住最近输入的值并可自动完成的组合框
Vb.net 可记住最近输入的值并可自动完成的组合框
Vb.net 可记住最近输入的值并可自动完成的组合框,vb.net,combobox,autocomplete,Vb.net,Combobox,Autocomplete,我正在用VB.NET开发一个桌面搜索引擎
我使用一个组合框来指定搜索查询(字符串)。
我希望组合框能够记住并显示最近的查询。
我还希望ComboBox在用户键入时尝试自动完成查询
实现这一点的最佳方法是什么?这无疑可以做得更优雅,但以下是基本原则(对于任何语法问题,我深表歉意,我不是一个VB高手):
在KeyUp事件中:
确保钥匙不是导航钥匙:
if e.KeyCode <> Keys.Back [...]
如果e.KeyCode Keys.Back[…]
在“项目”列表中搜索键入的文本
我正在用VB.NET开发一个桌面搜索引擎
我使用一个组合框来指定搜索查询(字符串)。
我希望组合框能够记住并显示最近的查询。
我还希望ComboBox在用户键入时尝试自动完成查询
实现这一点的最佳方法是什么?这无疑可以做得更优雅,但以下是基本原则(对于任何语法问题,我深表歉意,我不是一个VB高手):
在KeyUp事件中:
确保钥匙不是导航钥匙:
if e.KeyCode <> Keys.Back [...]
如果e.KeyCode Keys.Back[…]
在“项目”列表中搜索键入的文本:
idx = myCombo.FindString(myCombo.Text)
idx=myCombo.FindString(myCombo.Text)
获取组合的已找到项:
s = myCombo.GetItemText(idx)
s=myCombo.GetItemText(idx)
将其插入.Text属性:
myCombo.Text = s
myCombo.Text=s
请注意,这将改写用户输入的所有内容(销毁案例)。您可以通过添加“缺失”部分来改进这一点:
stringToAppend = s.SubString(myCombo.Text.Length)
myCombo.Text = myCombo.Text + stringToAppend
stringToAppend=s.SubString(myCombo.Text.Length)
myCombo.Text=myCombo.Text+stringToAppend
最后,选择新文本,以便他们可以继续键入:
myCombo.SelectionStart = myCombo.Text.Length - stringToAppend.Length
myCombo.SelectionLength = stringToAppend.Length
myCombo.SelectionStart=myCombo.Text.Length-stringToAppend.Length
myCombo.SelectionLength=stringToAppend.Length
毫无疑问,这可以做得更优雅,但以下是基本原则(对于任何语法问题,我深表歉意,我不是一个VB高手):
在KeyUp事件中:
确保钥匙不是导航钥匙:
if e.KeyCode <> Keys.Back [...]
如果e.KeyCode Keys.Back[…]
在“项目”列表中搜索键入的文本:
idx = myCombo.FindString(myCombo.Text)
idx=myCombo.FindString(myCombo.Text)
获取组合的已找到项:
s = myCombo.GetItemText(idx)
s=myCombo.GetItemText(idx)
将其插入.Text属性:
myCombo.Text = s
myCombo.Text=s
请注意,这将改写用户输入的所有内容(销毁案例)。您可以通过添加“缺失”部分来改进这一点:
stringToAppend = s.SubString(myCombo.Text.Length)
myCombo.Text = myCombo.Text + stringToAppend
stringToAppend=s.SubString(myCombo.Text.Length)
myCombo.Text=myCombo.Text+stringToAppend
最后,选择新文本,以便他们可以继续键入:
myCombo.SelectionStart = myCombo.Text.Length - stringToAppend.Length
myCombo.SelectionLength = stringToAppend.Length
myCombo.SelectionStart=myCombo.Text.Length-stringToAppend.Length
myCombo.SelectionLength=stringToAppend.Length
您可能还想看看vbAccelerator.com,它是VB.NET中自动完成的基本起点。vbAccelerator代码通常是高质量的。您可能还想从vbAccelerator.com查看,它是VB.NET中自动完成的基本起点。vbAccelerator代码通常是高质量的。ComboBox??我看不出会有什么效果。。。我可以用TextboxComboBox来描绘它??我看不出会有什么效果。。。我可以用一个文本框来描绘它