Advertisement
6_2008-2009 Custom Controls/ Forms/ Menus #195984

AutoCompleter - Class Module

This code allows you to have an autocomplete function on any text boxes by creating an instance of the class module below and setting a text control on a form to is CompleteTextbox property. Ideal for those situations when you have multiple autocompletes. (Visual Basic 6 Only - Can easily be modified for 5.0 users)

AI

สรุปโดย AI: This codebase represents a historical implementation of the logic described in the metadata. Our preservation engine analyzes the structure to provide context for modern developers.

ซอร์สโค้ด
original-source
Option Explicit
Private WithEvents m_txtComplete As TextBox
Private m_strDelimeter As String
Private m_strList As String
Private Sub m_txtComplete_KeyUp(KeyCode As Integer, Shift As Integer)
 
 Dim i As Integer
 Dim strSearchText As String
 Dim intDelimented As Integer
 Dim intLength As Integer
 Dim varArray As Variant
 
 With m_txtComplete
  If KeyCode <> vbKeyBack And KeyCode > 48 Then   
   If InStr(1, m_strList, .Text, vbTextCompare) <> 0 Then
      
    varArray = Split(m_strList, m_strDelimeter)
 
    For i = 0 To UBound(varArray)
     strSearchText = Trim(varArray(i))
 
     If InStr(1, strSearchText, .Text, vbTextCompare) And  
      (Left$(.Text, 1) = Left$(strSearchText, 1)) And 
      .Text <> "" Then
      .SelText = ""
      .SelLength = 0
      intLength = Len(.Text)
      .Text = .Text & Right$(strSearchText, Len(strSearchText) - Len(.Text))
      .SelStart = intLength
      .SelLength = Len(.Text)
      Exit Sub
     End If
 
    Next i
   End If
  End If
 End With
 
End Sub
Public Property Get CompleteTextbox() As TextBox
 Set CompleteTextbox = m_txtComplete
End Property
Public Property Set CompleteTextbox(ByRef txt As TextBox)
 Set m_txtComplete = txt
End Property
Public Property Get SearchList() As String
 SearchList = m_strList
End Property
Public Property Let SearchList(ByVal str As String)
 m_strList = str
End Property
Public Property Get Delimeter() As String
 Delimeter = m_strDelimeter
End Property
Public Property Let Delimeter(ByVal str As String)
 m_strDelimeter = str
End Property

Upload
ความคิดเห็นดั้งเดิม (3)
กู้คืนจาก Wayback Machine