Para poder llamar desde cualquier formulario el cambio de color y la letra del texto se deben crear las funciones a nivel de módulo. Tengo el siguiente formulario:
Observe tengo el control en el campo 2 al ingresar el fondo se torna azul y cambia el tipo de letra, ahora me muevo al campo 1 y obtengo:
El campo 2 queda normal con el color de fondo y tipo letra por defecto.
Las funciones se pueden llamar de 2 formas:
1. FORMA
Desde el procedimiento Al recibir el enfoque y Al perder el enfoque, por el ejemplo:
Private Sub ctl_1_GotFocus()
Call alfoco(ctl_1)
End Sub
Private Sub ctl_1_LostFocus()
Call volver(ctl_1)
End Sub
2. FORMA
Llamar las funciones desde el procedimiento, por ejemplo:
Observe como a la función se le pasa el nombre del control, en este ejemplo ctl_1.
CÓDIGO DE LAS FUNCIONES
Option Compare Database
Option Explicit
Dim oldColor As Variant
Dim oldletra As Variant
Public Function alfoco(mictrl As Control) As Variant
oldColor = mictrl.BackColor
oldletra = mictrl.FontName
With mictrl
.BackColor = vbBlue
.FontName = "Pristina"
End With
End Function
Public Function volver(mictrl As Control)
With mictrl
.BackColor = oldColor
.FontName = oldletra
End With
End Function
Observe como se definen 2 variables, oldColor para guardar el número del color que tenga en control antes de hacer algún cambio y oldletra para almacenar la letra que tenga el control. é Utilicé en el ejemplo como color vbBlue pero puede ser un valor numérico que corresponda al color, igualmente, asigné la letra "Pristina" pero puede ser "Arial" u otra.
Si quiere el ejemplo lo puede solicitar a [email protected] favor anotar en el asunto su pregunta.