none
Pasar valor de un elemento de un combobox al iniciar un form y no haciendolo con el evento SelectedIndexChanged RRS feed

  • Pregunta

  • Hola a todos

    Lo que pasa es que tengo una clase en donde hago una consulta,

    esta consulta la invoco en el form donde tengo un combobox para que el combobox se llene de esa consulta(catalogo)

    el evento selelectedIndexChanged hace su trabajo de forma correcta

    Pero lo que quiero es que como ya tengo los datos en el combobox quiero que al inciar el form se ejecute un metodo que realiza una consulta leyendo el dato que se carga dentro del combobox/ realiza las mismas instrucciones que selectedindex, pero quiero que se ejecute al iniciar el combobox sin necesitar de hacer clic en el y seleccionar el elemento

    quiero que lea el primer elemento del combobox y ejecute el metodo que le pido, hay algun evento del combobox que se ejecute al iniciar el form?

    martes, 19 de mayo de 2020 18:28

Todas las respuestas

  • hay algun evento del combobox que se ejecute al iniciar el form?

    No, pero no hace falta. Puedes usar para esto el Form_Load.

    Extrae a una subrutina el contenido que tienes en el SelectedIndexChanged, y llama a esa subrutina desde los dos sitios (el SelectedIndexChanged y el Form_Load). De esta manera el contenido del combo se lee tanto al cargar el form como cuando seleccionas un elemento del combo.

    Cuidado con una cosa: El SelectedindexChanged no solo se dispara cuando el usuario cambia la selección desde la pantalla, sino también cuando cambias los datos del combo por programación. Tenlo en cuenta no sea que le estés añadiendo datos desde programa y eso esté disparando el selectedindexchanged y eso esté "machacando" lo que habías seleccionado en el Form_Load.

    martes, 19 de mayo de 2020 20:55
    Moderador
  • hola

    >>quiero que al inciar el form se ejecute un metodo que realiza una consulta leyendo el dato que se carga dentro del combobox

    cual es ese dato ? porque en principio seria el primer item del combo, salvo que en el Form_Load estes cambiando la seleccion

    Es raro que al asignar el DataSource del combo no se este ejecutando el SelectedIndexChanged

    Lo que recomendaria es que cambies el evento por SelectionChangeCommitted

    asi solo se lanza cuando el usuario cambia la seleccion, entonces usas

    public class Form1: Form {
    
       public void Form1_Load(){
    
            //aqui cargas los items del combo asignando el DataSource
    
            Metodo1(combobox1.SelectedValue);
    
       }
    
       public void combobox1_SelectionChangeCommitted(...){
    
           Metodo1(combobox1.SelectedValue);
    
       }
    
       private void Metodo1(string seleccion){
    
           //codigo
    
       }
    
    }
    

    la idea es que el metodo comun lo invocas tanto despues de cargar el combo como en el seleccion de un item

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    miércoles, 20 de mayo de 2020 17:42
  • Hola BlackCode23

     

    ¿Alguna actualización sobre la consulta realizada? ¿Alguna de las respuestas proporcionadas te ayudó?

     

    Espero tu respuesta.

     

    Gracias por usar los foros de MSDN.

     

     

    Luis Diego Mora

     

    --------------------------------------------------------------------------

     

    Por favor recuerde "Marcar como respuesta" las respuestas que hayan resuelto su problema, es una forma común de reconocer a aquellos que han ayudado, y hace que sea más fácil para los otros visitantes encontrar la solución más tarde. 

     

    Microsoft ofrece este servicio de forma gratuita, con la finalidad de ayudar a los usuarios y la ampliación de la base de datos de conocimientos relacionados con los productos y tecnologías de Microsoft.  

     

    Este contenido es proporcionado "tal cual" y no implica ninguna responsabilidad de parte de Microsoft.

    miércoles, 20 de mayo de 2020 21:31
    Moderador
  • No pero lo solucione haciendo que los metodos se ejecuten de manera correcta para obtener el resultado deceado.
    jueves, 21 de mayo de 2020 13:23