visual net winforms data-binding combobox

winforms - visual - selectedindexchanged vb net combobox



Detener el evento selectedIndexChanged de comboBox de que se active cuando se carga el formulario (6)

Tengo un formulario con un ComboBox que proporciona una lista desplegable. En el SelectedIndexChanged event de comboBox, estoy ejecutando algún código, pero no quiero que ese código se ejecute cuando se carga el formulario. Desafortunadamente, cuando cargo el formulario (antes de hacer una selección en el cuadro combinado), se activa SelectedIndexChanged del combobox (creo que cuando el cuadro combinado está databinding ). ¿Hay alguna manera de evitar tal comportamiento?


¿Por qué no tener un indicador boolean que indique cuándo se ha terminado de cargar su Form ?

En su evento SelectionChanged , verifique si el indicador boolean es true . Si es true , maneje el evento, de lo contrario ignórelo.


Asegúrese de establecer la propiedad DataSource en su función onload() después de asignar las propiedades ValueMember y Datamember .

¡Esto te ayudará a resolver tu problema!


Me funcionó de alguna manera con el siguiente código:

private void ddlChapter_SelectionChangeCommitted(object sender, EventArgs e) { if (ddlChapter.SelectedValue != null) { // Do something here } }


Si desea reaccionar solo cuando el usuario cambia el elemento seleccionado en el cuadro combinado, entonces es mejor suscribirse a SelectionChangeCommitted .


Simplemente puede desvincular el evento SelectedIndexChanged , llamar a su función de fill y enlazar el evento SelectedIndexChanged nuevamente. Desafortunadamente, esto no funciona con una grilla.

Por ejemplo:

this.cmb.SelectionChanged -= new System.EventHandler(this.cmb_SelectionChanged); cmb.fill(); //Your function this.cmb.SelectionChanged += new System.EventHandler(this.cmb_SelectionChanged);


VB

RemoveHandler lbxNomes.SelectedIndexChanged, AddressOf lbxNomes_SelectedIndexChanged lbxNomes.DataSource = dst Label1.Text = String.Format("Encontrados {0} Sócios nesta pesquisa", dst.Rows.Count) Label1.Visible = True AddHandler lbxNomes.SelectedIndexChanged, AddressOf lbxNomes_SelectedIndexChanged