Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

label=combo

Estas en el tema de label=combo en el foro de Visual Basic clásico en Foros del Web. Buenos días, tengo un label que tiene como caption "Vasijas a Presión", deseo ahora que cuando dé click sobre él, el nombre pase al combo, ...
  #1 (permalink)  
Antiguo 08/11/2005, 07:35
 
Fecha de Ingreso: agosto-2005
Ubicación: Colombia/Santander/Bucaramanga
Mensajes: 19
Antigüedad: 18 años, 8 meses
Puntos: 0
De acuerdo label=combo

Buenos días,

tengo un label que tiene como caption "Vasijas a Presión", deseo ahora que cuando dé click sobre él, el nombre pase al combo, en el evento click del label coloco:
Combo1.Text = "Vasijas a Presión"

hasta ahí no hay problema, pero, si más adelante tomo la propiedad listindex, ejemplo:

if combo1.listindex = 0 then
haga tal cosa

cómo puedo hacer para que funcione, si esa propiedad sólo funciona dando click sobre el combo, y seleccionando la lista del mismo?

Gracias
  #2 (permalink)  
Antiguo 08/11/2005, 08:10
Avatar de jc_moty  
Fecha de Ingreso: septiembre-2005
Ubicación: Usulután, El Salvador
Mensajes: 477
Antigüedad: 18 años, 7 meses
Puntos: 1
A ver si te entendi:
Queres accesar a la propiedad ListIndex desde otro objeto que no sea el combo, pero segun decis esta propiedad solo la podes cambiar o consultar desde el evento click del combo.

¿Estoy en lo correcto?
Ojo: la propiedad la podes cambiar desde cualquier otro objeto, osea ListIndex no es una propiedad de "Solo lectura".
Código:
    ' Establecer el indice a partir de un numero.
    Combo1.ListIndex = 0
    ' Establecer el indice al ultimo elemento.
    Combo1.ListIndex = Combo1.ListCount - 1
Sin embargo la propiedad ListIndex te va servir solo si tenes algun elemento en el combo; y por lo que veo lo unico que haces es cambiar el texto del combo, no agregas ningun item a el.
Lo ideal seria que agreges el contenido del Label al Combo, asi:
Código:
    Combo1.AddItem Label1.Caption
Tene en cuenta que aunque hagas esto: Combo1.Text = "Vasijas a Presión"; eso no implica que estas agregando un item al combo, sino que solo estas cambiando el Texto que aparece en el.

Saludos.
  #3 (permalink)  
Antiguo 08/11/2005, 09:42
 
Fecha de Ingreso: agosto-2005
Ubicación: Colombia/Santander/Bucaramanga
Mensajes: 19
Antigüedad: 18 años, 8 meses
Puntos: 0
Muchas gracias, por su ayuda, el combo tiene tres items "Vasijas a Presión" , "Componentes de tubería", "Tanques de Almacenamiento", ahora, para evitar colocar más adelante:

if combo1.text="Vasijas a Presión" then
haga tal cosa

coloqué:

if combo1.listindex=0 then
haga tal cosa

y no sabía q esa propiedad funciona al dar click sobre el combo y elegir el nombre correspondiente.

ahora si deseo darle al usuario otro método de elección que no sea darle click en el combo, sino dar click en un label, y que éste haga aparecer "Vasijas a Presión" en el combo, y que aparte internamente coloque una manera para que me funcione el código:

if combo1.listindex=0 then
haga tal cosa

No tengo idea de cómo debo hacerlo.
Gracias
  #4 (permalink)  
Antiguo 08/11/2005, 16:57
Avatar de jc_moty  
Fecha de Ingreso: septiembre-2005
Ubicación: Usulután, El Salvador
Mensajes: 477
Antigüedad: 18 años, 7 meses
Puntos: 1
Lo que podes hacer para cambiar el contenido del combo desde un label o desde cualquier otro objeto es esto:
Código:
Private Sub Label1_Click()
    Combo1.ListIndex = 0
    If Combo1.ListIndex = 0 Then
        ' haces tal cosa
    End If
End Sub
Conste, que ListIndex devuelve o establece el indice del elemento activo de un Combo.
Es decir, que si queres accesar a otro elemento del Combo tenes que establecer el numero del indice de ese elemento.
Por ejemplo, queres accesar al tercer elemento del Combo ("Tanques de Almacenamiento"), tendrias que hacer esto:
Código:
Private Sub Label3_Click()
    Combo1.ListIndex = 2
    If Combo1.ListIndex = 2 Then
        ' haces tal cosa
    End If
End Sub
Espero me hayas entendido.
Saludos.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:47.