SoloCodigo
CLR: .Net / Mono / Boo / Otros CLR => VB .NET => Mensaje iniciado por: donnett en Miércoles 22 de Abril de 2009, 11:43
-
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
-
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
-
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
-
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
-
Ya lo e solucionado con la siguiente linea de codigo.
s = ListView1.SelectedItems(0).SubItems(1).Text
Muchas gracias por tus consejos.
Un saludo