SELECIONAR TEXTO DO FIM AO INICIO
Olá pessoal...
estou tentando fazer um auto completar... ja tenho tudo pronto, porem...
eu faço da seguinte forma para selecionar um texto em um COMBO do INICIO ao FIM conforme vou digitando...
cbo.SelStart = 1
cbo.SelLength = Len(CBO.text)
porem o cursor fica fiscando no final, e caso tem texto fica ruim saber o que ja foi digitado, entao preciso que seja selecionado do fim a ultima letra digitada
ja tentei diversas formas e nao consigo.
por favor, me deem uma luz
estou tentando fazer um auto completar... ja tenho tudo pronto, porem...
eu faço da seguinte forma para selecionar um texto em um COMBO do INICIO ao FIM conforme vou digitando...
cbo.SelStart = 1
cbo.SelLength = Len(CBO.text)
porem o cursor fica fiscando no final, e caso tem texto fica ruim saber o que ja foi digitado, entao preciso que seja selecionado do fim a ultima letra digitada
ja tentei diversas formas e nao consigo.
por favor, me deem uma luz
em um modulo vc coloca isso
Public Sub FocaTexto(ByRef pObj As Object) [ô]Marca o texto para edição
With pObj
.SelStart = 0
.SelLength = Len(.Text)
End With
End Sub
e no form vc chama assim
Private Sub Text1_GotFocus()
Call FocaTexto(Text1)
End Sub
Public Sub FocaTexto(ByRef pObj As Object) [ô]Marca o texto para edição
With pObj
.SelStart = 0
.SelLength = Len(.Text)
End With
End Sub
e no form vc chama assim
Private Sub Text1_GotFocus()
Call FocaTexto(Text1)
End Sub
tenta isto colega
Option Explicit
Private Const CB_FINDSTRING As Long = &H14C
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
Public Function Combo_AutoCompletar(xCombo As ComboBox, ByVal xKeyAscii As Long, Optional ByVal xUpperCase As Boolean = True) As Long
Dim lngFind As Long, intPos As Long, intLength As Long, tStr As String
With xCombo
If xKeyAscii = 8 Then
If .SelStart = 0 Then _
Exit Function
.SelStart = .SelStart - 1
.SelLength = Len(.Text)
.SelText = vbNullString
Else
intPos = .SelStart
tStr = .Text
.SelText = IIf(xUpperCase, _
UCase$(Chr$(xKeyAscii)), _
LCase$(Chr$(xKeyAscii)))
End If
lngFind = SendMessage(.hwnd, CB_FINDSTRING, 0, ByVal .Text)
If lngFind = -1 Then
.Text = tStr
.SelStart = intPos
.SelLength = (Len(.Text) - intPos)
Combo_AutoCompletar = xKeyAscii
Else
intPos = .SelStart
intLength = Len(.List(lngFind)) - Len(.Text)
.SelText = .SelText & Right$(.List(lngFind), intLength)
.SelStart = intPos
.SelLength = intLength
End If
End With
End Function
Tópico encerrado , respostas não são mais permitidas