怎么样实现ComboBox的快速查询?

mmcgzs 2005-09-23 09:04:24
最近用VB写一个查询系统,用到很多ComboBox,怎么根据用户输入的部分内容快速定位到相似的内容呢?试了很多方法都不行,请高手解答!!
...全文
253 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
isteel 2006-07-06
  • 打赏
  • 举报
回复
可是这个时候鼠标“失灵”了
atila1978 2005-09-23
  • 打赏
  • 举报
回复
API
Sendmessage 函数
熟悉几个Combobox消息常数.
在WinApi32(VB安装目录里有)可以查到.
你说的都可以做到。
vansoft 2005-09-23
  • 打赏
  • 举报
回复
用API,可以做到自動下拉,自動匹配。
mmcgzs 2005-09-23
  • 打赏
  • 举报
回复
谢谢楼上的代码,问题已经解决!!
northwolves 2005-09-23
  • 打赏
  • 举报
回复
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Private Sub Combo1_Change()
Dim iStart As Integer
Dim sString As String
Static iLeftOff As Integer

iStart = 1
iStart = Combo1.SelStart

If iLeftOff <> 0 Then Combo1.SelStart = iLeftOff: iStart = iLeftOff

sString = CStr(Left(Combo1.Text, iStart))
Combo1.ListIndex = SendMessage(Combo1.hwnd, &H14C, -1, ByVal CStr(Left(Combo1.Text, iStart)))

If Combo1.ListIndex = -1 Then iLeftOff = Len(sString): Combo1.Text = sString
If Combo1.Text <> "" Then SendMessage Combo1.hwnd, &H14F, True, 0

Combo1.SelStart = iStart
Combo1.SelLength = 0
iLeftOff = 0

End Sub
Private Sub Form_Load()
Dim i As Long
For i = 1 To 500
Randomize
Combo1.AddItem Chr(Int(Rnd * 26) + 97) & Chr(Int(Rnd * 26) + 97) & Chr(Int(Rnd * 26) + 97) & Chr(Int(Rnd * 26) + 97) & Chr(Int(Rnd * 26) + 97)
Next
Combo1.Text = ""
End Sub

7,762

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧