例:我第一次在文本框中打入一个字符串“记忆的功能”
当我第二次打入"记忆"时,就自动回出现“的功能”三个字符匹配上去
有没有这样的API啊?

解决方案 »

  1.   

    可以实现。你可以在旁边放一个list框,你每次输入后的东西都添在那里(但可以隐藏该控件)
    ,以后用到的时候可以从这里判断是否有符合条件的记录存在
    但是这仅适合于运行中,如果下次再运行,list框里的内容就没有了,但是你可以加入一个文本中
     启动后读文件到list中。
      

  2.   

    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 SubPrivate Sub cbOperator_Change()
        Call ComboBoxChange(cbOperator)
    End Sub
    这是一个COMBOBOX的例子,你自己修改一下阿
      

  3.   

    用COLLECTION对象来实现,方便!
      

  4.   

    painache() :
    怎么个实现方法啊?
      

  5.   

    方便的意思只是说你可以省去管理存放你的字符串的“容器”的代码。因为COLLECTION对象就是个很好的容器。具体的操作你可以参考MSDN文档。匹配字符串的功能还是要你自己去实现的。
      

  6.   

    我写了一段,好象还有错误,大家帮我看!
    Private Sub Text1_Change()
                        
              Dim cnn As New ADODB.Connection
              Dim rs As New ADODB.Recordset
              Dim connectionstr As String
              connectionstr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\\services\全部数据\test\gt.mdb;Persist Security Info=False"          cnn.Open connectionstr
              Dim sqlstr As String
              sqlstr = "select * from 酒店"
              rs.Open sqlstr, cnn, adOpenKeyset, adLockOptimistic
              
              For i = 0 To rs.RecordCount
                If InStr(rs.Fields(3).Value, Trim(Text1.Text)) > 0 Then
                    Text1.Text = rs.Fields(3).Value
                    Exit For
                End If
                rs.MoveNext
              Next
              rs.Close
              cnn.Close
    End Sub
      

  7.   

    up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!vv
      

  8.   

    Text1.Text = rs.Fields(3).Value是错的。
    应写为
    Text1.Text = rs.Fields(3).item(0)
    上一条的也是,应该改为rs.Fields(3).item(0)
    这里item是列号,应该首先得列号。
    如果只有一列,则为item(0),第二列为item(1)
      

  9.   

    循环语句应该改为(假设只有一列)
             rs.Movefirst         For i = 0 To rs.RecordCount
               If InStr(rs.Fields(3).item(0), Trim(Text1.Text)) > 0 Then
                    Text1.Text = rs.Fields(3).item(0) then Exit For
                End If
                rs.MoveNext
              Next