winforms vb - Detener el evento selectedIndexChanged de comboBox de que se active cuando se carga el formulario




net visual (6)

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

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?


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
        }
    }

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);

¿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.


Básicamente lo es si desea ajustar múltiples propiedades relacionadas con el diseño, o agregar varios elementos secundarios, pero evite que el sistema de diseño reaccione repetidamente a sus cambios. Desea que solo realice el diseño al final, cuando todo esté "listo".





winforms data-binding combobox