Help!!需要一个输入控件,类似Combox,但输入一个字就能引出含该字的值,如,要输入Apple, 输完a即显示apple...

myTongTong 2004-08-11 03:09:57
Help!!需要一个输入控件,类似Combox,但输入一个字就能引出含该字的值,如,要输入Apple, 输完a即显示apple...,请各位帮忙提供线索那里能找到这样的控件,要花钱买的也行。谢了
...全文
243 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
myTongTong 2004-08-12
  • 打赏
  • 举报
回复
谢了,Northwolves, 这正是我要的效果
northwolves 2004-08-11
  • 打赏
  • 举报
回复
'add a combobox ( sort=true) to form1:

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

szmickylee 2004-08-11
  • 打赏
  • 举报
回复
调用API函数
Const CB_FINDSTRING = &H14C

Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long

至于怎么写,你查一下就知道了。
cpio 2004-08-11
  • 打赏
  • 举报
回复
想得出来啊,以一个字母开头的单词太多了吧
gdami 2004-08-11
  • 打赏
  • 举报
回复
如果不多的话,可以这么试试。

Private Sub Combo1_Change()
For i = 0 To Combo1.ListCount
If Left(Combo1.List(i), 1) = Combo1.Text Then
SendKeys "{DOWN}"
End If
Next i
End Sub
Private Sub Form_Load()
Combo1.AddItem "abc"
Combo1.AddItem "1bc"
Combo1.AddItem "2bc"
Combo1.AddItem "3bc"
Combo1.AddItem "4bc"
Combo1.AddItem "5bc"
End Sub
落伍者 2004-08-11
  • 打赏
  • 举报
回复
用text加listbox自己写个如此的效果
birdhang 2004-08-11
  • 打赏
  • 举报
回复
晕,Combox就可以啊,写一个字母点击下拉菜单焦点就在以此字母开头的项上啊,如果非要显示出来,自己在Combox基础上作个控件好了^_^

1,451

社区成员

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

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