或者是个独立的控件吗?

解决方案 »

  1.   

    那不是读取了cook ie吗?
    不是很懂
    up !
      

  2.   

    Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal 
    hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) 
    As Long
    Public Const CB_FINDSTRING = &H14C
    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
    End If
    sString = CStr(Left(Combo1.Text, iStart))
    Combo1.ListIndex = SendMessage(Combo1.hwnd,B_FINDSTRING, -1, ByVal CStr(
    Left( ombo1.Text, iStart)))
     
    If Combo1.ListIndex = -1 Then
    iLeftOff = Len(sString)
    combo1.Text = sString
    End If
    Combo1.SelStart = iStart
    iLeftOff = 0
    End Sub
    静态变量 iLeftOff 指定了字符长度 
      

  3.   

    在change事件中判断已输入的字符串是否存在于combobox的list里(或者文件等其他),如在从list里读出来给text属性赋值,同时将已输入部分后面的字符串selected。
      

  4.   

    '在窗口上加入text1,list1
    '代码如下:
    Private Sub Text1_Change()
        Dim strSrch As String
        Dim iCount As Integer
        strSrch = Text1.Text
        For iCount = 0 To List1.ListCount
            If List1.List(iCount) >= strSrch Then
                List1.Selected(iCount) = True
                Exit For
            End If
        Next
    End Sub
      

  5.   

    楼上的:实现了吗?实现了能发我一份吗?e-mail: [email protected]
      

  6.   

    建立一个模块
    Public Sub ComboBoxChange(ByRef CB As ComboBox)
        Dim iStart As Integer
        Dim sString As String
          
        iStart = CB.SelStart
        If iStart = 0 Then
            Exit Sub
        End If
        
        sString = CStr(Left(CB.Text, iStart))
        CB.ListIndex = SendMessage(CB.hwnd, CB_FINDSTRING, 0, ByVal sString)    CB.SelStart = iStart
        CB.SelLength = Len(CB.Text) - iStart
    End Sub
    调用:
    Private Sub txtFName_Change()
        Call ComboBoxChange(txtFName)
    End Sub
    其实IE的就是一个COMBOBOX控件的格式
    应该和我上面的方法一样的
      

  7.   

    Public Const LB_SELECTSTRING = &H18C
    'Public Const CB_SELECTSTRING = &H14D
    Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
    ‘其实 SendMessage 主要都是会用这个的,没它的
    Function FastFindStr(mList As ListBox, mStrFind As String) As String
    ’mList As ListBox 这个可能根据要求而变
        Dim lIndex As Long    
        If Len(mStrFind) > 0 Then
            lIndex = SendMessage(mList.hwnd, LB_SELECTSTRING, -1, ByVal mStrFind)
        Else
            lIndex = -1
        End If
        If lIndex >= 0 Then
            FastFindStr = mList.List(lIndex)
        Else
            FastFindStr = ""
        End If
    End Function
      

  8.   

    我自豪,我用正版。
    我自豪,我用正版。有专门的控件,我就有一个,花了399美元买的。很好用的。
    你可以买一个。http://dbi-tech.com。也可以先试用再购买。如果感兴趣我可以先发一个例子给你,你看中了以后,我可以copy一份给你。
      

  9.   

    Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal 
    hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) 
    As Long
    Public Const CB_FINDSTRING = &H14CPublic Sub ComboBoxChange(ByRef CB As ComboBox)
        Dim iStart As Integer
        Dim sString As String
          
        iStart = CB.SelStart
        If iStart = 0 Then
            Exit Sub
        End If
        
        sString = CStr(Left(CB.Text, iStart))
        CB.ListIndex = SendMessage(CB.hwnd, CB_FINDSTRING, 0, ByVal sString)    CB.SelStart = iStart
        CB.SelLength = Len(CB.Text) - iStart
    End Sub
    Private Sub txtFName_Change()
        Call ComboBoxChange(txtFName)
    End Sub