2011-07-11 11 views
5

Tengo un problema por el cual mi evento SelectedValueChanged(), en un ComboBox, se desencadena durante la carga de mi aplicación Windows Form. Actualmente, también tengo un evento Form_Load() que está cargando varios ComboBoxes incluyendo este, usando OleDbDataAdapters/DataTables/Fill(), etc.Activación de evento SelectedValueChange() durante la carga de formulario en una aplicación de Windows Form

Supongo que debido a mi método Form_Load(), el evento SelectedValueChanged se está desencadenando debido a los datos del ComboBox que se están llenando.

¿Por qué sucede esto?

+0

Si no desea que el evento que se tratarán durante la iniciación, por qué no suscribirse al evento después de todo, de su formulario de inicialización ¿ha tomado lugar? –

Respuesta

4

En el formulario Cargar evento antes de cargar los elementos en el comboBox, anular la suscripción para el evento. Después de vincular los datos, suscríbase nuevamente al evento.

Form_Load(..) 
{ 
    _comboBoxName.SelectedValueChanged -= _comboBoxName_SelectedValueChanged; 

    // Load data to the combo box... 

    _comboBoxName.SelectedValueChanged += _comboBoxName_SelectedValueChanged; 
} 
+0

¡Impresionante! Esto es genial, gracias. –

+0

@James Durman: Genial, no olvides seleccionar la respuesta para tu pregunta. – CharithJ

+0

@James: si esta respuesta resolvió su problema, no olvide marcarlo como el correcto – Grace

3

Probablemente este evento se desencadena debido a los datos que primero se rellenan en el ComboBox. La mejor solución recomendada sería suscribirse a eventos después de que los controles se hayan inicializado.

Otra solución simple es asignar una marca booleana cuando el formulario se haya cargado por completo. Este indicador se puede usar para ignorar cualquier llamada a su evento hasta que se cargue el formulario (por ejemplo, FormLoaded = true).

+0

¡Estaba pensando que este podría ser el caso! Gracias. –

0
rbtalldivision_CheckedChanged(sender, e); 
rbtAllSitecodes_CheckedChanged(sender, e); 

Para callling múltiples eventos en las ventanas de aplicación debe trabajarlo

Cuestiones relacionadas