如何加快COMBOX控件的输入速度

you2222you 2003-09-14 09:25:37
请问各位,我做的一个输入界面中的COMBOX,需要有大量的数据输入,现想要在两种情况下加快输入速度,如何做:
  1、输入一项内容时,输入前几个字,自动出现下拉框,以输入的文字开头的项前在最前面以方便选择。
  2、输入项的内容比较复杂,如何以助记码的形式,来帮助输入。比如:输入车辆的类型时,用K001代表客车类的,当输入K时显示了客车项,而当输入H时代表货车,显示货车项。
  多谢!
...全文
39 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
yas 2003-09-16
  • 打赏
  • 举报
回复
对,用Sendmessage函数,绝对管用
you2222you 2003-09-16
  • 打赏
  • 举报
回复
谢谢,我先试看
chao778899 2003-09-15
  • 打赏
  • 举报
回复
1 引用
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_KeyPress(KeyAscii As Integer)
Dim sSearchText As String
Dim lReturn As Long
Dim aa As String
' Dim bb As Long
' bb = Combo1.hwnd

If KeyAscii = 13 Then
Combo1.SelLength = 0
Combo1.SelStart = Len(Combo1.Text)
KeyAscii = 0

Else
sSearchText = Left$(Combo1.Text, Combo1.SelStart) & Chr$(KeyAscii)
lReturn = SendMessage(Combo1.hwnd, CB_FINDSTRING, -1, ByVal sSearchText)

If lReturn <> CB_ERR Then
mbIgnoreListClick = True
Combo1.ListIndex = lReturn
mbIgnoreListClick = False
Combo1.Text = Combo1.List(lReturn)
Combo1.SelStart = Len(sSearchText)
Combo1.SelLength = Len(Combo1.Text)
KeyAscii = 0
End If
End If
2 第二个问题,在上面的事件中判断输入字符,自己做判断处理,
you2222you 2003-09-15
  • 打赏
  • 举报
回复
但这个提示框怎么出现,怎么选中其中的项能讲详细点吗?
liuyongpc 2003-09-14
  • 打赏
  • 举报
回复
笨办法就是多一个字段来处理你的问题,如koo1的代码就是K,

1,216

社区成员

发帖
与我相关
我的任务
社区描述
VB 数据库(包含打印,安装,报表)
社区管理员
  • 数据库(包含打印,安装,报表)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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