乌龟 脖子红烂:模拟 IE 的 地址栏:智慧型下拉式 Combo
来源:百度文库 编辑:偶看新闻 时间:2024/05/05 13:41:01
63、模拟 IE 的 地址栏:智慧型下拉式 Combo
不知您是否有注意到?您在 IE 的地址栏直接输入地址的时候,如果您输入的地址前面几位和下拉式 Combo 中现存的地址相同时,IE 便会自动带出该地址资料放在 Combo 的 Text 框中,而且这串字有一个特性,在滑鼠游标之前的字是未选定反白的,而在滑鼠游标之后的字则是已经选定反白的,它的目的有二个:
1. 如果您要输入的整串字和它带出的字完全一样,就可以不用再输入,可以节省时间。
2. 如果您要输入的整串字和它带出的字不一样,您还是可以继续输入,继续输入的字串会自动取代后面那串已经选定反白的字串。
以下的范例,只处理英文字,若要处理其他情形如数字,请自行略加更改,请先在 Form1 中放一个 Combo,然后将以下程式直接 Copy 进去即可:
Dim strCombo As String
Const WM_SETREDRAW = &HB
Const KEY_A = 65
Const KEY_Z = 90
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_KeyUp(KeyCode As Integer, Shift As Integer)
Dim x%
Dim strTemp$
Dim nRet&
If KeyCode >= KEY_A And KeyCode <= KEY_Z Then
‘only look at letters A-Z
strTemp = Combo1.Text
If Len(strTemp) = 1 Then strCombo = strTemp
nRet& = SendMessage(Combo1.hwnd, WM_SETREDRAW, False, 0&)
For x = 0 To (Combo1.ListCount - 1)
If UCase((strTemp & Mid$(Combo1.List(x), Len(strTemp) + 1))) = UCase(Combo1.List(x)) Then
Combo1.ListIndex = x
Combo1.Text = Combo1.List(x)
Combo1.SelStart = Len(strTemp)
Combo1.SelLength = Len(Combo1.Text) - (Len(strTemp))
strCombo = strCombo & Mid$(strTemp, Len(strCombo) + 1)
Exit For
Else
If InStr(UCase(strTemp), UCase(strCombo)) Then
strCombo = strCombo & Mid$(strTemp, Len(strCombo) + 1)
Combo1.Text = strCombo
Combo1.SelStart = Len(Combo1.Text)
Else
strCombo = strTemp
End If
End If
Next
nRet& = SendMessage(Combo1.hwnd, WM_SETREDRAW, True, 0&)
End If
End Sub
Private Sub Form_Load()
Combo1.AddItem "AAAAAAAA"
Combo1.AddItem "ABBBBBBB"
Combo1.AddItem "ABCCCCCC"
Combo1.AddItem "ABCDDDDD"
Combo1.AddItem "ABCDEEEE"
Combo1.AddItem "ABCDEFFF"
Combo1.AddItem "ABCDEFGG"
Combo1.AddItem "ABCDEFGH"
End Sub
删除IE地址栏下拉列表的网址
如何清除IE浏览器的下拉地址栏
IE地址栏怎么下拉不了?
为什么我的IE地址栏的下拉列表框中有许多广告式的东西?
IE地址栏浏览器下拉列表的记录怎样保留
怎么删除IE地址栏下拉列表的网址?
如何清除IE浏览器的下拉地址栏 请告诉我 谢谢
怎样删除IE地址栏下拉菜单里保存的网址
IE地址栏里下拉菜单里的地址怎么删除?
ie浏览器地址栏的下拉菜单怎么删除?
关于清理IE地址栏下拉列表的问题
我的IE地址栏下拉菜单为什么打不开
IE地址栏的下拉菜单没有地址了怎么拌
清理IE地址栏下拉菜单用什么?
为什么每次点击IE地址栏右边的下拉箭头IE就停止响应了
IE 地址栏下拉非常慢,其他的IE功能都正常,什么原因??
我的ie浏览器上的地址栏变成了下拉试的,怎么才能恢复??
没有访问过的东西会有一大穿出现在IE浏览器地址栏的下拉列表中
为什么我的IE只要一点地址栏的下拉图标就自动关闭了呢?
如何清除IE浏览器的下拉地址栏(是汉字的)上网助手不好使
我的IE一点地址栏的下拉按钮就自动关闭是咋回事?
怎么把IE浏览器地址栏的下拉菜单里的地址清楚?
为什么IE地址栏的下拉列表里不能显示汉字,怎么解决?
IE地址栏下拉中的中文网址怎样删除,不是简单的网址删除