Foros del Web » Programación para mayores de 30 ;) » .NET »

Evento SelectedIndexChanged en ListView

Estas en el tema de Evento SelectedIndexChanged en ListView en el foro de .NET en Foros del Web. Saludos: Lo que quiero es saber cual es el valor de la primera columna de la fila seleccionada, el codigo que hice es: Código: Private ...
  #1 (permalink)  
Antiguo 10/07/2008, 09:16
 
Fecha de Ingreso: mayo-2003
Ubicación: Lima
Mensajes: 967
Antigüedad: 21 años
Puntos: 8
Evento SelectedIndexChanged en ListView

Saludos:

Lo que quiero es saber cual es el valor de la primera columna de la fila seleccionada, el codigo que hice es:
Código:
Private Sub lstvFacturas_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles lstvFacturas.SelectedIndexChanged
    MessageBox.Show(Me.lstvFacturas.SelectedItems(0).Text)
End Sub
La primera vez que selecciono una fila si funciona, pero cuando quiero seleccionar otra fila me sale el siguiente error:

InvalidArgument=El valor de '0' no es válido para 'index'.
Nombre del parámetro: index

Quizas no lo estoy haciendo en el evento correcto, espero que alguien pueda ayudarme. Gracias de antemano.
__________________
El aprendiz.
  #2 (permalink)  
Antiguo 10/07/2008, 09:22
 
Fecha de Ingreso: mayo-2003
Ubicación: Lima
Mensajes: 967
Antigüedad: 21 años
Puntos: 8
Respuesta: Evento SelectedIndexChanged en ListView

Lo resolvi poniendo el mismo codigo dentro del evento Click.

Pero ahora, para que sirve el evento SelectedIndexChanged???
__________________
El aprendiz.
  #3 (permalink)  
Antiguo 10/07/2008, 09:26
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Exclamación Respuesta: Evento SelectedIndexChanged en ListView

http://msdn.microsoft.com/es-es/libr...exchanged.aspx

Fuente:
MSDN
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #4 (permalink)  
Antiguo 19/03/2009, 18:00
 
Fecha de Ingreso: marzo-2009
Mensajes: 1
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: Evento SelectedIndexChanged en ListView

Hola, parece ser que el evento SelectedIndexChanged actua 2 veces cada vez que cambiamos de item en el ListView, ¿Que quiero decir con esto?.
Tenemos un item seleccionado y seleccionamos el sguiente item. Cuando hacemos esto lo primero que pasa es que el primer item pierde el foco, es decir, que por un momento el primer item pierde el fondo azul que lo representa como seleccionado y en este momento justo no hay nada seleccionado ¿no?. ok pues en este momento justo que comento resulta que se produce un cambio en el indice que estaba seleccionado hasta ese momento, pasa de estar seleccionado a estar deseleccionado y salta el evento SelectedIndexChanged cuando no hay nada seleccionado y es cuando te da el error. Despues de esto, si no te diese error o si lo controlas con un try cach se selecciona el segundo item y vuelve a saltar el evento SelectedIndexChanged por segunda vez ¿ok? pero esta vez si hay un item seleccionado y no da error.
Bien, ¿como se puede controlar esto?, como digo es un problema de perdida de foco de item seleccionado en ese momento antes de que se seleccione el siguiente asi que hay que hacer que solo funcione el evento SelectedIndexChanged cuando se produzca un cambio en el ListView y este un item focalizado al mismo tiempo. Pondre un ejemplo.

Private Sub ListView_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ListView.SelectedIndexChanged
If ListView.FocusedItem.Selected = True Then
......
......
Lo que quieras que haga el procedimiento
......
......

End If


Este IF hace que solo se ejecute el codigo que tiene dentro si esta focalizado el item actual. Esto son cosas que he visto en mas de un sitio y es mi conclusion, y me funciona. Quizas no sea exactamente asi como funciona esto pero creo que si no es exacto sera muy parecido.
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 08:32.