Saludos, estoy algo oxidado en VB6 pero puedes utilizar algo como esto (aún le falta que lo pulas)
Partimos de un proyecto Nuevo
Crea una nueva clase llamada clsAdvancedTextBox y añade el siguiente código:
Código vb:
Ver originalOption Explicit
Public WithEvents txtBox As TextBox
Private Sub Class_Terminate()
Set txtBox = Nothing
End Sub
Private Sub txtBox_GotFocus()
txtBox.BackColor = vbRed
End Sub
Private Sub txtBox_LostFocus()
txtBox.BackColor = vbWindowBackground
End Sub
Añade otra clase llamada clsAdvancedTextBoxCollection y añade el siguiente código:
Código vb:
Ver originalOption Explicit
Private c As Collection
Public Sub AddTextBox(ByRef frmValue As Form)
Dim txtBox As clsAdvancedTextBox
Dim xControl As Control
For Each xControl In frmValue.Controls
If TypeOf xControl Is TextBox Then
Set txtBox = New clsAdvancedTextBox
Set txtBox.txtBox = xControl
c.Add txtBox, xControl.Name
End If
Next
End Sub
Private Sub Class_Initialize()
Set c = New Collection
End Sub
Private Sub Class_Terminate()
Set c = Nothing
End Sub
Teniendo ya las clases, procedemos a agregar varios textbox al formulario, luego añade el siguiente código al Form1
Código vb:
Ver originalOption Explicit
Dim clsTextBoxCollection As clsAdvancedTextBoxCollection
Private Sub Form_Load()
Set clsTextBoxCollection = New clsAdvancedTextBoxCollection
clsTextBoxCollection.AddTextBox Form1
End Sub
Private Sub Form_Unload(Cancel As Integer)
Set clsTextBoxCollection = Nothing
End Sub
Cuando ejecutes el programa, te podrás dar cuenta que al recibir el foco en alguno de los textbox, su color de fondo será de color rojo :).
Espero que te haya sido de utilidad, y como te mencione a la clase le hace falta mas trabajo, simplemente tiene lo necesario para funcionar.