Cambiar color de fondo y texto al recibir foco mediante código en cuadro de texto

Podrían ayudadme. Necesito un procedimiento que sea llamado desde varios campos de varios formularios que al recibir foco cambie de color el fondo y el texto. Y al salir vuelva a su color inicial.

2 Respuestas

Respuesta
1

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.

Respuesta
1

No sé si te he entendido. ¿Te refieres a que varios controles de un formulario cambien el color de fondo cuando el cursor les llegue? Si es eso, por ejemplo

Puedes ver que el cursor está en el control Texto43

Si lo paso, por ejemplo, a Texto47

En vista diseño del formulario selecciona de una vez todos los controles que quieres que cambien el fondo al recibir el enfoque y pulsa Formato-Formato Condicional-Nueva regla - El campo tiene el foco

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas