Habilitar un comboBox dinamicamente


([N1] Spicer) #1

Estimados,

Tengo un formulario que contiene un comboBox que quiero habilitar dinámicamente si el usuario activa un checkbox.

Para esto, declaré una variable local booleana y la asocié al checkbox. Luego, un manejador de evento que se ejecuta con la acción VALUE CHANGED del checkBox. Finalmente, un manejador de evento que habilita el comboBox.

Al hacer click en el checkBox, se gatilla el evento y la variable local toma el valor 1 ó 0 según si el checkBox está activado o no. Pero por algún motivo, el comboBox no se activa y no sé por qué. Les adjunto el evento.

Favor ayuda, esto es muy frustrante

Gracias


([N1] Spicer) #2

Bien, ya me di cuenta qué pasaba. Lo comparto para que otro se ahorre el tiempo que invertí yo.

Lo que pasaba fue que el comboBox lo puse con condición de activo = 0 para que no se mostrara en la vista inicial, con la idea que el usuario lo habilitara si quería. Pero esta condición prima sobre el manejador de evento, por lo tanto, por mucho que el evento quiera, no lo puede habilitar. No sé si esto es un defecto o lo hicieron así a propósito; como sea, la única alternativa fue deshabilitar el control comboBox mediante un evento de inicialización del formulario y ahí el usuario lo puede habilitar o deshabilitar mediante el checkBox correspondiente, a voluntad.

Menudo jaleo por algo tan simple

Gracias de todos modos


([N4] fgomes) #3

la condición de activo puede ser una variable local, inicializada a 0.

Cuando se cumplen las condiciones cambias el valor de la variable local a 1, y ya lo tienes.

Es el comportamiento normal y logico.

 


([N1] Spicer) #4

Estimado Filippe,

Sí, efectivamente, es una forma de hacerlo. Lo que hice fue hacer un evento de inicialización que deshabilita los controles y luego un evento que los habilita si el usuario hace check. Es más engorroso pero funciona igual.

Gracias por la ayuda