Ver Mensaje Individual
  #4 (permalink)  
Antiguo 19/03/2009, 18:00
txappi
 
Fecha de Ingreso: marzo-2009
Mensajes: 1
Antigüedad: 16 años
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.