Colores en etiquetas |
Responder |
Autor | ||
JuanaM
Nuevo Unido: 13/Junio/2019 Localización: San Javier Estado: Sin conexión Puntos: 9 |
Tema: Colores en etiquetas Enviado: 06/Junio/2020 a las 18:59 |
|
Tengo un formulario con 20 etiquetas llamadas E1, E2, E3,.... y quisiera que al hacer clic en cualquiera de ellas su color de fondo se volviera amarillo. Pero no quiero ir diciendo una por una que al hacer click...sino algo como
for each... y en que evento tendría que ponerlo Os agradecería mucho la respuesta
|
||
prga
Moderador Unido: 16/Noviembre/2004 Localización: España Estado: Sin conexión Puntos: 3523 |
Enviado: 06/Junio/2020 a las 19:41 | |
Hola
Sí he entendido bien, una forma "manual" de conseguirlo sería: 1º.-En vista diseño y en el evento click de cada etiqueta pegamos: =cambiacolor() 2º.- En el código del formulario pegamos: Private Function cambiacolor() Dim nn As Long For nn = 1 To 20 Me.Controls("E" & nn).BackStyle = 1 Me.Controls("E" & nn).BackColor = RGB(255, 255, 0) Next End Function Con lo que cambiarían a amarillo las 20 etiquetas al hacer click en cualquiera de ellas. Otra cosa sería que fuesen muchísimas más etiquetas, en cuyo caso en vista diseño del formulario y en un módulo independiente se puede crear una función ( parecida a la expuesta ) que "pegue" el nombre de la función en todas ellas en el evento click. Espero que ayude a resolver la duda. Ya comentas. Un saludo a todos
|
||
JuanaM
Nuevo Unido: 13/Junio/2019 Localización: San Javier Estado: Sin conexión Puntos: 9 |
Enviado: 07/Junio/2020 a las 00:54 | |
Te lo agradezco, pero no es lo que busco. Me explico. Si tengo 20 etiquetas, lo que quiero es que cambie de color solo la que "toque" pero sin tener que poner en cada una de las 20, en su evento Al hacer clic la función cambiacolor(). Por eso decía algo parecido a
for each control in form.controls if control.controltype=aclabel then if control.setfocus o If control=controlactivo( es decir que sea al que se le hace clic then control.backcolor=vbyellow ¿Como decirle que el control activo es el que recibe el enfoque?
|
||
Mihura
Ver perfil usuario
Enviar mensaje privado
Ver los mensajes del usuario
Visite la página de los usuarios
Añadir a la lista de amigos
Administrador Unido: 06/Mayo/2005 Localización: En la dehesa Estado: Sin conexión Puntos: 13990 |
Enviado: 07/Junio/2020 a las 09:54 | |
Hola Juana,
El problema es que una etiqueta no coge 'el foco' nunca, con lo que no puedes cazar directamente el nombre de la etiqueta a partir de Me.ActiveControl.Name. Como siempre hay varias opciones, aunque yo me decantaría por crear una función como esta:
Y en la propiedad 'al hacer clic' de cada etiqueta poner: =FondoAmarillo("NombreEtiqueta") Edito: para dar valor a la propiedad de todas las etiquetas de una vez:
Editado por Mihura - 07/Junio/2020 a las 10:26 |
||
01loko
Colaborador Unido: 17/Agosto/2017 Localización: Santander Estado: Sin conexión Puntos: 807 |
Enviado: 07/Junio/2020 a las 10:44 | |
creo que lo que quiere es: En el timer del form, ver que control tiene el foco y colorearlo. Es lo que entiendo. algo como: if typename(.activecontrol)="label" then activecontrol.BackColor = vbYellow Edito:de corrido y sin probar
Editado por 01loko - 07/Junio/2020 a las 10:45 |
||
Recordar de que soy nuevo y estoy aprendiendo.
|
||
Mihura
Ver perfil usuario
Enviar mensaje privado
Ver los mensajes del usuario
Visite la página de los usuarios
Añadir a la lista de amigos
Administrador Unido: 06/Mayo/2005 Localización: En la dehesa Estado: Sin conexión Puntos: 13990 |
Enviado: 07/Junio/2020 a las 11:15 | |
01loko,
Una etiqueta no coge foco.
|
||
prga
Moderador Unido: 16/Noviembre/2004 Localización: España Estado: Sin conexión Puntos: 3523 |
Enviado: 07/Junio/2020 a las 13:05 | |
Hola
Ya que estamos hablando de etiquetas: ¿Hay forma de discriminar las etiquetas "independientes" de las que están ligadas a un cuadro de texto? Un saludo a todos
|
||
01loko
Colaborador Unido: 17/Agosto/2017 Localización: Santander Estado: Sin conexión Puntos: 807 |
Enviado: 07/Junio/2020 a las 13:21 | |
Pregunta: Cuando hacemos clic en una etiqueta ¿la convierte en control activo?
|
||
Recordar de que soy nuevo y estoy aprendiendo.
|
||
Emilio
Ver perfil usuario
Enviar mensaje privado
Ver los mensajes del usuario
Visite la página de los usuarios
Añadir a la lista de amigos
Administrador Santander Unido: 08/Agosto/2004 Localización: España Estado: Sin conexión Puntos: 18836 |
Enviado: 07/Junio/2020 a las 13:30 | |
Hola!
Pedro, las etiquetas ligadas a un cuadro de texto llevan el nombre de este en su propiedad parent, que en el caso de las independientes está vacío.
|
||
prga
Moderador Unido: 16/Noviembre/2004 Localización: España Estado: Sin conexión Puntos: 3523 |
Enviado: 07/Junio/2020 a las 13:37 | |
Lo había probado con parent y no se me había ocurrido lo de parent.name.
Gracias Edito. En las independientes da el nombre del formulario
Editado por prga - 07/Junio/2020 a las 13:39 |
||
xavi
Ver perfil usuario
Enviar mensaje privado
Ver los mensajes del usuario
Visite la página de los usuarios
Añadir a la lista de amigos
Administrador Terrassa-BCN Unido: 10/Mayo/2005 Localización: Catalunya |||| Estado: Sin conexión Puntos: 14720 |
Enviado: 07/Junio/2020 a las 14:58 | |
No. Las etiquetas, como ya dijo Mihura, no toman el foco
|
||
lbauluz
Ver perfil usuario
Enviar mensaje privado
Ver los mensajes del usuario
Visite la página de los usuarios
Añadir a la lista de amigos
Administrador Unido: 29/Marzo/2005 Localización: La Gloria Estado: Sin conexión Puntos: 3849 |
Enviado: 09/Junio/2020 a las 03:04 | |
Pues si que hay una forma,
1 annade un modulo de clase y llamalo lblChecker (u otrpo nombre, pero que luego coincida) 2 en este modulo annade este codigo Option Explicit Public WithEvents lblChecker As MSForms.Label Private Sub lblChecker_Click() lblChecker.BackColor = RGB(255, 255, 0) End Sub 3 en el user form annade Dim MyLabel(1 To 3) As New lblChecker Private Sub UserForm_Initialize() Dim i As Integer For i = 1 To 3 ' aqui el numero de etiquetas que tengas en el form, ni mas ni menos Set MyLabel(i).lblChecker = Controls("Label" & i) Next i End Sub 4 prueba Un saludo. Luis
|
||
El Búho es un pajarraco
|
||
01loko
Colaborador Unido: 17/Agosto/2017 Localización: Santander Estado: Sin conexión Puntos: 807 |
Enviado: 09/Junio/2020 a las 07:28 | |
aprovechando que el Pisuerga pasa por Valladolid: Me podeis explicar de manera sencilla la diferencia entre modulo de clase y modulo? Nunca lo entendi del todo Gracias de antemano |
||
Recordar de que soy nuevo y estoy aprendiendo.
|
||
lbauluz
Ver perfil usuario
Enviar mensaje privado
Ver los mensajes del usuario
Visite la página de los usuarios
Añadir a la lista de amigos
Administrador Unido: 29/Marzo/2005 Localización: La Gloria Estado: Sin conexión Puntos: 3849 |
Enviado: 09/Junio/2020 a las 14:48 | |
Pues aunque debería ser en otro hilo, por esta vez lo dejo.
En un resumen muy rápido. En un módulo defines la funcionalidad que quieres para tu programa En un módulo de clases defines las propiedades de los objetos. Es decir, puedes hacer una clase que tome las funcionalidades de un botón y añadirle una funcionalidad, por ejemplo que al pulsarlo cambie el fondo a color amarillo, o que envíe los datos a una web pirata, allá tú, así todos los botones definidos en tu clase además de la funcionalidad normal del botón, tendrán las que le añadas Por supuesto no tiene por qué ser solo asociado a un objeto ya existente,puedes crear nuevos objetos, no se, por ejemplo el objeto Factura, o el objeto coche, o moto,o silla, lo que puedas necesitar. De esta forma, igual que al usar un botón normal no tienes que programar que al pulsarlo cambie de aspecto para que parezca pulsado y que al soltarlo se recupere, puesto que está en el objeto toda esa lógica, en tu objeto coche, tendrías algo similar. Es "un poco" más complicado que eso, pero creo que para dar una idea aproximada vale.
|
||
El Búho es un pajarraco
|
||
01loko
Colaborador Unido: 17/Agosto/2017 Localización: Santander Estado: Sin conexión Puntos: 807 |
Enviado: 09/Junio/2020 a las 16:13 | |
Gracias por la explicacion, nunca lo he tenido claro.
|
||
Recordar de que soy nuevo y estoy aprendiendo.
|
||
Responder | |
Tweet
|
Ir al foro | Permisos de foro Usted No puede publicar nuevos temas en este foro Usted No puede responder a temas en este foro Usted No puede borrar sus mensajes en este foro Usted No puede editar sus mensajes en este foro Usted No puede crear encuestas en este foro Usted No puede votar en encuestas en este foro |