Esta vez no es una funcion, todo el papeleo lo cumple un Timer..
Es sencillo usamos la Api GetFocus para saber el Handle del objeto tiene el enfoque, luego recorremos todos los controles del form1 buscando a que objeto pertenece el Handle, al encontrarlo verificamos si es un TextBox con la función TypeName propia de VB6, sin mas que decir un Screen y el código:
(Aclaro que el ejemplo esta basado en la descripcion de la OCX de (Este Link))
Es posible cambiar el color, no es complicado hacerlo..
El codigo; declaramos la API y luego añadimos un Timer1 a nuestro Form1 y establecemos la propiedad Interval a 1:
Código:
Private Declare Function GetFocus Lib "user32" () As Long
Private Sub Timer1_Timer()
On Error Resume Next
Dim Obj As Object, BackBackup As Long
For Each Obj In Form1.Controls
If (TypeName(Obj) = "TextBox" Or TypeName(Obj) = "ComboBox") _
And GetFocus = Obj.hWnd Then
If Err Then
Err.Clear
Else
BackBackup = Obj.BackColor
Do
If Obj.hWnd = GetFocus Then
Obj.BackColor = vbGreen
Else
Obj.BackColor = BackBackup
Exit Sub
End If: DoEvents
Loop
End If
End If
DoEvents
Next
End Sub
SaluDOS!!!