我实现过,程序找不到了,我就告诉你方法吧。
我用的是dao配合access使用,在文本框内追踪key_press事件,遇到比如“.”时,根据小点前面的字符串,在数据库中找到所要列出的数据,让下拉框可见,并且获得焦点,挑中所要的数据后,响应下拉框的键盘事件,让text1.text=text1.text+combo1.text,通过文本框sellength,selstart等属性定位于最后一个字符。至于下拉框出现的位置是一个技巧,因为文本框的字符大小已经固定,所以下拉框的top,left和字符的个数和行数有一定的比例关系
好像是个数乘以125,试试吧
我用的是dao配合access使用,在文本框内追踪key_press事件,遇到比如“.”时,根据小点前面的字符串,在数据库中找到所要列出的数据,让下拉框可见,并且获得焦点,挑中所要的数据后,响应下拉框的键盘事件,让text1.text=text1.text+combo1.text,通过文本框sellength,selstart等属性定位于最后一个字符。至于下拉框出现的位置是一个技巧,因为文本框的字符大小已经固定,所以下拉框的top,left和字符的个数和行数有一定的比例关系
好像是个数乘以125,试试吧
Public Const CB_FINDSTRING = &H14CPrivate 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
End If
sString = CStr(Left(Combo1.Text, iStart))
Combo1.ListIndex = SendMessage(Combo1.hwnd, CB_FINDSTRING, -1, ByVal CStr(Left(Combo1.Text, iStart)))
If Combo1.ListIndex = -1 Then
iLeftOff = Len(sString)
Combo1.Text = sString
End If
Combo1.SelStart = iStart
iLeftOff = 0
End SubPrivate Sub Text1_Change()
Combo2.ListIndex = SendMessage(Combo2.hwnd, CB_FINDSTRING, -1, ByVal CStr(Text1.Text))
End Sub
Bardo(巴顿) 讲具体点。
CStr(Text1.Text)是不是搞错了,Text1.Text本来就是文本呀
返回或设置一个值,它指示 DataCombo 控件或 DataList 控件如何在用户输入的基础上执行查找。语法object.MatchEntry [= value ]MatchEntry 属性的语法包含以下部分:部件 描述
object 对象表达式,其值是“应用于”列表中的对象。
value 一个常量或值,当控件获得焦点且用户输入一个或多个字符时这个值定义控件的行为,这点正如设置中所述。
设置value 的设置情况如下:设置 数值 描述
dblBasicMatching 0 基本匹配:(缺省)对于使用列表输入项的第一个字母输入字符,该控件查找下一个匹配。重复键入相同的字母可以循环浏览列表中所有以那个字母开头的输入项。
dblExtendedMatching 1 扩展匹配:控件查找与输入的所有字符相匹配的项。键入字符后,查找就完成了,键入更多的字符可以使查找更准确。
说明当 MatchEntry 属性被设置为 dblExtendedMatching 且用户输入了一个 backspace 键或等待数秒钟之后,匹配的字符串被重新设置。数据类型Integer
http://www.dapha.net/vb/list.asp?id=1538