Programación General > Visual Basic 6.0 e inferiores
Ayuda Con Funcion
m@gnus:
:D :D
Primero que nada saludos para este gran foro, mi problema es con la siguiente funcion, esta me sirve para cambiar el color de textbox a amarillo cuando este se encuentre activo. o en teoria hace eso, el problema es que en la linea marcada con asteriscos me marca un error y no se que hacer, agradeceria su ayuda de antemano...
El error k se muestra es el siguiente: ;)
--- Código: Text --- Run-Time error '438': El objeto no soporta la propiedad o metodo.
Codigo de la funcion
--- 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 = vbYellow End Function
cpmario:
Un mejor método es colocar el cambio de color en los eventos GotFocus y LostFocus, por ejemplo:
--- Código: Text --- Private Sub Text1_GotFocus() Text1.BackColor = &HC0FFFFEnd Sub Private Sub Text1_LostFocus() Text1.BackColor = &H80000005End Sub
:comp:
m@gnus:
Estoy de acuerdo, pero en este caso esta funcion le cambia el color a 15 texbox en una forma, y para eso es la funcion, te imagunas poner todo eso a cada texbox ???????
Solo es la forma mas optima.....
DiabloRojo:
Hola m@gnus.
Revisa en la ayuda del VB la función TypeOf que sirve para averiguar qué tipo de control es un control específico que se pasa como parámetro. Ciertamente ningún control cuenta con la propiedad "ControlType".
Disculpa que no coloque un ejemplo pero la verdad en este momento no recuerdo cómo se usa la función ni tengo el VB para probar.
Saludos y suerte
DiabloRojo
Widark:
Que tal M@gnus!
Como lo comenta DiabloRojo, la función TypeOf te servira en este caso. Te recomendaria que validaras los controles en el For, así
--- Código: Text ---For Each ctl In Me.Controls No se como llamas a la función pero deberias validar que el control activo no sea uno diferente de un textbox.
Espero ayude de algo.
Navegación
[#] Página Siguiente
Ir a la versión completa