SelectedIndexChanged

31/08/2006 - 19:19 por Baldor | Informe spam
Tengo un problema curioso, que hasta ahora no sabía que ocurría en .NET
Se trata del evento SelectedIndexChanged.
Lo que yo quiero es hacer un pequeño proceso sobre todas las filas
seleccionadas de un ListView, para lo que uso el evento
SelectedIndexChanged, donde recorro todas las filas y las trato.
Lo que sucede es que el usuario marca un numero 'n' de filas usando la tecla
'Mayusuculas', por ejemplo, y observo que cuantas más filas se marcan, más
tarda el proceso (obviamente), pero el retardo al aumentar 'n' bastante es
exagerado.
Resulta que lo que yo no sabía es que el evento no se ejecuta una sola vez,
sino tantas veces como sea la diferencia entre eñ nº de elementos que había
seleccionados antes, y los que acabamos de seleccionar. O sea, que si
tenemos un elemento seleccionado, y usando la tecla mayúsculas marcamos por
ejemplo 100 en total:

El Evento SelectedIndexChanged se ejecutará 99 veces!!!!! una por cada
elemento adicional que se va marcando.

Espero haberme explicado bien; para comprobar que esto sucede, solo hay que
poner un msgbox en el evento en cuestion.
¿Alguien se encontró alguna vez con esto?
¿Como hacer para ejecutar el evento solo una vez?
No me sirve pinchando en un botón cuando terminemos de seleccionar, o algo
similar. Lo que necesito es que el evento solo se ejecute una vez por cada
rango de elementos que seleccionemos.

Preguntas similare

Leer las respuestas

#1 Pedro Rivera
31/08/2006 - 21:22 | Informe spam
Que tal si en lugar de capturar SelectedIndex, capturas MouseDown y
compruebas si la cantidad de filas que tenias seleccionadas antes es
diferente a la cantidad actual.



"Baldor" wrote:

Tengo un problema curioso, que hasta ahora no sabía que ocurría en .NET
Se trata del evento SelectedIndexChanged.
Lo que yo quiero es hacer un pequeño proceso sobre todas las filas
seleccionadas de un ListView, para lo que uso el evento
SelectedIndexChanged, donde recorro todas las filas y las trato.
Lo que sucede es que el usuario marca un numero 'n' de filas usando la tecla
'Mayusuculas', por ejemplo, y observo que cuantas más filas se marcan, más
tarda el proceso (obviamente), pero el retardo al aumentar 'n' bastante es
exagerado.
Resulta que lo que yo no sabía es que el evento no se ejecuta una sola vez,
sino tantas veces como sea la diferencia entre eñ nº de elementos que había
seleccionados antes, y los que acabamos de seleccionar. O sea, que si
tenemos un elemento seleccionado, y usando la tecla mayúsculas marcamos por
ejemplo 100 en total:

El Evento SelectedIndexChanged se ejecutará 99 veces!!!!! una por cada
elemento adicional que se va marcando.

Espero haberme explicado bien; para comprobar que esto sucede, solo hay que
poner un msgbox en el evento en cuestion.
¿Alguien se encontró alguna vez con esto?
¿Como hacer para ejecutar el evento solo una vez?
No me sirve pinchando en un botón cuando terminemos de seleccionar, o algo
similar. Lo que necesito es que el evento solo se ejecute una vez por cada
rango de elementos que seleccionemos.



Respuesta Responder a este mensaje
#2 Baldor
31/08/2006 - 21:35 | Informe spam
Gracias, Pedro, es una idea.
Lo pensé, pero lo malo es si usa el tecla en lugar de ratón, por ejemplo,
para marcar todas las fila con Mayusculas+Fin, no se activaría el evento del
ratón.

En fin, quiza finalmente tenga que usar un boton para realizar el proceso, o
similar.


"Pedro Rivera" escribió en el
mensaje news:
Que tal si en lugar de capturar SelectedIndex, capturas MouseDown y
compruebas si la cantidad de filas que tenias seleccionadas antes es
diferente a la cantidad actual.



"Baldor" wrote:

Tengo un problema curioso, que hasta ahora no sabía que ocurría en .NET
Se trata del evento SelectedIndexChanged.
Lo que yo quiero es hacer un pequeño proceso sobre todas las filas
seleccionadas de un ListView, para lo que uso el evento
SelectedIndexChanged, donde recorro todas las filas y las trato.
Lo que sucede es que el usuario marca un numero 'n' de filas usando la
tecla
'Mayusuculas', por ejemplo, y observo que cuantas más filas se marcan,
más
tarda el proceso (obviamente), pero el retardo al aumentar 'n' bastante
es
exagerado.
Resulta que lo que yo no sabía es que el evento no se ejecuta una sola
vez,
sino tantas veces como sea la diferencia entre eñ nº de elementos que
había
seleccionados antes, y los que acabamos de seleccionar. O sea, que si
tenemos un elemento seleccionado, y usando la tecla mayúsculas marcamos
por
ejemplo 100 en total:

El Evento SelectedIndexChanged se ejecutará 99 veces!!!!! una por
cada
elemento adicional que se va marcando.

Espero haberme explicado bien; para comprobar que esto sucede, solo hay
que
poner un msgbox en el evento en cuestion.
¿Alguien se encontró alguna vez con esto?
¿Como hacer para ejecutar el evento solo una vez?
No me sirve pinchando en un botón cuando terminemos de seleccionar, o
algo
similar. Lo que necesito es que el evento solo se ejecute una vez por
cada
rango de elementos que seleccionemos.



Respuesta Responder a este mensaje
#3 DuKe
01/09/2006 - 15:26 | Informe spam
y si lo lanzas al presionar ENTER ?

asi en el keypress validas si tienes al menos 1 fila seleccionada y ejecutas
tu proceso, si no hay filas, tiras un msgbox.

"Baldor" escribió en el mensaje
news:
Gracias, Pedro, es una idea.
Lo pensé, pero lo malo es si usa el tecla en lugar de ratón, por ejemplo,
para marcar todas las fila con Mayusculas+Fin, no se activaría el evento
del ratón.

En fin, quiza finalmente tenga que usar un boton para realizar el proceso,
o similar.


"Pedro Rivera" escribió en el
mensaje news:
Que tal si en lugar de capturar SelectedIndex, capturas MouseDown y
compruebas si la cantidad de filas que tenias seleccionadas antes es
diferente a la cantidad actual.



"Baldor" wrote:

Tengo un problema curioso, que hasta ahora no sabía que ocurría en .NET
Se trata del evento SelectedIndexChanged.
Lo que yo quiero es hacer un pequeño proceso sobre todas las filas
seleccionadas de un ListView, para lo que uso el evento
SelectedIndexChanged, donde recorro todas las filas y las trato.
Lo que sucede es que el usuario marca un numero 'n' de filas usando la
tecla
'Mayusuculas', por ejemplo, y observo que cuantas más filas se marcan,
más
tarda el proceso (obviamente), pero el retardo al aumentar 'n' bastante
es
exagerado.
Resulta que lo que yo no sabía es que el evento no se ejecuta una sola
vez,
sino tantas veces como sea la diferencia entre eñ nº de elementos que
había
seleccionados antes, y los que acabamos de seleccionar. O sea, que si
tenemos un elemento seleccionado, y usando la tecla mayúsculas marcamos
por
ejemplo 100 en total:

El Evento SelectedIndexChanged se ejecutará 99 veces!!!!! una por
cada
elemento adicional que se va marcando.

Espero haberme explicado bien; para comprobar que esto sucede, solo hay
que
poner un msgbox en el evento en cuestion.
¿Alguien se encontró alguna vez con esto?
¿Como hacer para ejecutar el evento solo una vez?
No me sirve pinchando en un botón cuando terminemos de seleccionar, o
algo
similar. Lo que necesito es que el evento solo se ejecute una vez por
cada
rango de elementos que seleccionemos.









Respuesta Responder a este mensaje
#4 Robinson.Moscoso
01/09/2006 - 15:56 | Informe spam
Como estas...

yo tuve un problema similar, y lo que hice fue utilizar el evento validated

espero te sirva

Un saludo

Róbinson Moscoso
Colombia




"DuKe" escribió en el mensaje
news:
y si lo lanzas al presionar ENTER ?

asi en el keypress validas si tienes al menos 1 fila seleccionada y
ejecutas tu proceso, si no hay filas, tiras un msgbox.

"Baldor" escribió en el mensaje
news:
Gracias, Pedro, es una idea.
Lo pensé, pero lo malo es si usa el tecla en lugar de ratón, por ejemplo,
para marcar todas las fila con Mayusculas+Fin, no se activaría el evento
del ratón.

En fin, quiza finalmente tenga que usar un boton para realizar el
proceso, o similar.


"Pedro Rivera" escribió en el
mensaje news:
Que tal si en lugar de capturar SelectedIndex, capturas MouseDown y
compruebas si la cantidad de filas que tenias seleccionadas antes es
diferente a la cantidad actual.



"Baldor" wrote:

Tengo un problema curioso, que hasta ahora no sabía que ocurría en .NET
Se trata del evento SelectedIndexChanged.
Lo que yo quiero es hacer un pequeño proceso sobre todas las filas
seleccionadas de un ListView, para lo que uso el evento
SelectedIndexChanged, donde recorro todas las filas y las trato.
Lo que sucede es que el usuario marca un numero 'n' de filas usando la
tecla
'Mayusuculas', por ejemplo, y observo que cuantas más filas se marcan,
más
tarda el proceso (obviamente), pero el retardo al aumentar 'n' bastante
es
exagerado.
Resulta que lo que yo no sabía es que el evento no se ejecuta una sola
vez,
sino tantas veces como sea la diferencia entre eñ nº de elementos que
había
seleccionados antes, y los que acabamos de seleccionar. O sea, que si
tenemos un elemento seleccionado, y usando la tecla mayúsculas marcamos
por
ejemplo 100 en total:

El Evento SelectedIndexChanged se ejecutará 99 veces!!!!! una por
cada
elemento adicional que se va marcando.

Espero haberme explicado bien; para comprobar que esto sucede, solo hay
que
poner un msgbox en el evento en cuestion.
¿Alguien se encontró alguna vez con esto?
¿Como hacer para ejecutar el evento solo una vez?
No me sirve pinchando en un botón cuando terminemos de seleccionar, o
algo
similar. Lo que necesito es que el evento solo se ejecute una vez por
cada
rango de elementos que seleccionemos.













email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida