¿Porqué se ejecuta el evento KeyDown de un ListBox que no está activo?

El problema es que se ejecuta el evento KeyDown que tengo en un listbox que no está en uso.

Yo me manejo con una serie de formularios, hay un formulario que si no lo abro no hay problema, pero si lo abro y lo cierro (con BUSCAR. Hide) y luego ejecuto una serie de subrutinas, no entiendo porqué se ejecuta el evento KeyDown del ListBox1 que se encuentra en un formulario utilizado anteriormente (BUSCAR).
Si es útil como dato, yo tengo muchos formularios, donde tengo muchos ListBox - y como al crearlos se nombra y enumeran automáticamente - poseo muchos cuadros del listas llamados "ListBox1". Además, siempre utilizo la forma antes explicada para cerrar un formulario, ya que no se como cerrarlos sin que se cierre el programa completo.

Supuse que la coincidencia de sus nombres podía ser el problema ya que cuando ejecuto la orden "BUSCAR.Hide", el formulario no se cierra realmente, pero lo que me llama la atención, es que se ejecuta el evento KeyDown del ListBox1 que se encuentra en el formulario llamado BUSCAR cuando estoy modificando los valores de una celda de una hoja que no tiene relación alguna con éste listbox ya que su propiedad "RowSource" pertenece a un rango de otra hoja.
Espero haber sido claro, xq necesito solucionar el problema lo antes posible.

2 respuestas

Respuesta
1

Quiero agregar algo al tema.
Cuando tengo configurada la propiedad RowSource de un ListBox en un rango específico, el evento KeyDown se ejecuta si uno modifica los valores de ese rango (en las celdas de las hojas a pesar de que el formulario que contiene el listbox esté cerrado), aún así haya colocado la función "Unload.XXX". La solución fué mantener esa función para cerrar los formularios, pero los ListBox no les dejo la propiedad RowSource, sino que lo cargo mediante macro en el evento "Activate" del formulario.

Respuesta
1

H o l a : Cuando utilizas el método .Hide es para ocultar el formulario, significa que el formulario no se visualiza pero sigue en memoria.

Para cerrar el formulario completamente utiliza la sentencia Unload, por ejemplo:

Unload Buscar

De ese forma quitarás el formulario Buscar de la memoria.

'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas