• Viernes 8 de Noviembre de 2024, 07:49

Autor Tema:  Seleccionar un elemento de una listview  (Leído 24565 veces)

donnett

  • Nuevo Miembro
  • *
  • Mensajes: 15
    • Ver Perfil
Seleccionar un elemento de una listview
« en: Miércoles 22 de Abril de 2009, 11:43 »
0
Como puedo hacer para seleccionar un elemento de una listview.  q evento tengo q usar. no he usado nunca este control y estoy teniendo alguna dificultad, aunq asta el momento e salido al paso. pero no se como poder clicar con el raton y q se ponga en azul la fila sobre la que aces el click y que al hacer doble click puedas actuar como si fuese un boton( mostrar en otra pantalla mas datos del elemento que e seleccionado)
Muchas gracias de antemano y un saludo

javierkcjm

  • Miembro activo
  • **
  • Mensajes: 48
  • Nacionalidad: ec
    • Ver Perfil
Re: Seleccionar un elemento de una listview
« Respuesta #1 en: Miércoles 22 de Abril de 2009, 16:21 »
0
Hola amigo,

Tienes que saber como funciona internamente el Listview , a diferencia de un combo o una lista que puedes seleccionar un itme a la vez el ListView puede seleccionar varios items , esto hace que el listview guarde en un arreglo los items seleccionados, la propiedad selectedindices guarda los indices seleccionados, la propiedad selecteditems guarda los items seleccionados, entonces con esas propiedades puedes saber cuales items seleccionates

mira este ejemplo:

en el load del formulario pones esto:

        ListView1.Items.Add("Hola")
        ListView1.Items.Add("como")
        ListView1.Items.Add("estas")
        ListView1.Items.Add("tu")


en el evento selectedIndex changed pones esto

 Private Sub ListView1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ListView1.SelectedIndexChanged
        For i As Int16 = 0 To ListView1.SelectedIndices.Count - 1
            MsgBox(ListView1.SelectedItems.Item(i).Text)
        Next
    End Sub

lo que esto hace es mostrarte por mensaje los items seleccionados,espero haberte ayudado a comprender un poco la complejidad de este control..

saludos cordiales

JC

donnett

  • Nuevo Miembro
  • *
  • Mensajes: 15
    • Ver Perfil
Re: Seleccionar un elemento de una listview
« Respuesta #2 en: Jueves 23 de Abril de 2009, 10:20 »
0
Muchas gracias por tu aportacion. me a servido de gran ayuda lo q pasa es q aora me e encontrado conn un nuevo problema. yo me creo por cada item de la lista varios subitems y me creo columnas para mostrarlos. Pues al crear estos subitems siempre me aparece el una columna extra q es el numero de item empezando a numerar desde 1. este es mi trozo de codigo y me gustaria poder kitarlo o bien poder acceder al texto de los subitems del item seleccionado.

Al hacer esto:

       Dim i As Integer
            Dim s As String
            For i = 0 To ListView1.SelectedIndices.Count - 1

                s = ListView1.SelectedItems.Item(i).SubItems(1).ToString

            Next

me devuelve a s ="ListViewSubItem: {linea2}"
cuando deberia darme solo linea2.
como puedo hacerlo?

Gracias y un saludo

javierkcjm

  • Miembro activo
  • **
  • Mensajes: 48
  • Nacionalidad: ec
    • Ver Perfil
Re: Seleccionar un elemento de una listview
« Respuesta #3 en: Jueves 23 de Abril de 2009, 19:38 »
0
Cita de: "donnett"
Muchas gracias por tu aportacion. me a servido de gran ayuda lo q pasa es q aora me e encontrado conn un nuevo problema. yo me creo por cada item de la lista varios subitems y me creo columnas para mostrarlos. Pues al crear estos subitems siempre me aparece el una columna extra q es el numero de item empezando a numerar desde 1. este es mi trozo de codigo y me gustaria poder kitarlo o bien poder acceder al texto de los subitems del item seleccionado.

Al hacer esto:

       Dim i As Integer
            Dim s As String
            For i = 0 To ListView1.SelectedIndices.Count - 1

                s = ListView1.SelectedItems.Item(i).SubItems(1).ToString

            Next

me devuelve a s ="ListViewSubItem: {linea2}"
cuando deberia darme solo linea2.
como puedo hacerlo?

Gracias y un saludo


Hola amigo,

que bueno que te sirivera el codigo, para resolver el inconveniente que tienes es facil en vez de usar el metodo tostring del subitem usa el text, ya que el tostring transforma el objeto subitem del listview en cadena por eso te sale todo ese cofigo

s = ListView1.SelectedItems.Item(i).SubItems(1).Text

ahi esto te devolvera en tu caso solo linea2, espero te ayude

saludos cordiales

JC

donnett

  • Nuevo Miembro
  • *
  • Mensajes: 15
    • Ver Perfil
Re: Seleccionar un elemento de una listview
« Respuesta #4 en: Viernes 24 de Abril de 2009, 08:45 »
0
Ya lo e solucionado con la siguiente linea de codigo.

s = ListView1.SelectedItems(0).SubItems(1).Text

Muchas gracias por tus consejos.
Un saludo