Programación General > Visual Basic 6.0 e inferiores
Ayuda Con Funcion
cpmario:
Tienes un problema...
La rutina que mostraste:
--- Código: Text ---Function ChangeColor() Dim ctl As Control For Each ctl In Me If ctl.ControlType = acTextBox Then ctl.BackColor = vbWhite End If Next ctl Me.ActiveControl.BackColor = vbYellowEnd Function
Es correcta en principio, solo que el problema es de donde la vas a llamar, por ejemplo si la llamas desde un control que no sea de texto, ese control tomará el foco y será el activo de esa forma y te marcará el error "Run-Time error '438': El objeto no soporta la propiedad o metodo."
Así que mi sugerencia sigue en pie, aunque tengas que colocar el código en los 15 cuadros de texto.
:whistling:
Soultaker:
Prueba con esto
--- Código: Text ---Function ChangeColor() Dim ctl As Control For Each ctl In Me.Controls If TypeOf ctl Is TextBox Then ctl.BackColor = vbWhite End If Next ctl Me.ActiveControl.BackColor = vbYellowEnd Function
:comp:
m@gnus:
Thanks Soultaker una excelente solucion con el typeof............
:lol: :lol: :lol:
!!!!!!!Saludos
DiabloRojo:
Bueno, por algo dicen que todos los caminos conducen a Roma. Aquí otra solución pero usando un timer (creo, a la vista del código enviado por Soultaker, me compliqué la vida :nosweat:). Lo dicho, usé un timer con la propiedad interval en 100 y usé este código:
--- Código: Text --- Private Sub Timer1_Timer() Dim ctrl As Control If TypeOf Form1.ActiveControl Is TextBox Then For Each ctrl In Form1.Controls If TypeOf ctrl Is TextBox Then If Form1.ActiveControl.Name = ctrl.Name Then ctrl.BackColor = vbBlue Else ctrl.BackColor = vbWhite End If End If Next Else For Each ctrl In Form1.Controls If TypeOf ctrl Is TextBox Then ctrl.BackColor = vbWhite End If Next End IfEnd Sub
Es que no me podía quedar sin mandarlo :rolleyes: Jejejeje...
Saludos
DiabloRojo
Navegación
[*] Página Anterior
Ir a la versión completa