none
¿Cómo actualizo automaticamente un textbox? RRS feed

  • Pregunta

  • Pues tengo aproximadamente 20 textbox en los que introduzco un valor numérico. Todos están matemáticamente relacionados y el resultado de una operación aparece en otro textbox. Esto es cuando hago click en un botón. Sin embargo, quisiera que el resultado se modificara al tiempo que modifico el valor de cualquiera de mis 20 textbox sin necesidad de hacer click en el botón.

    ¿Alguien podría decirme si existe alguna forma de hacerlo sin tener que darle la instrucción a cada uno de los 20 textbox?

    Gracias!

    lunes, 11 de marzo de 2013 5:47

Todas las respuestas

  • Sin embargo, quisiera que el resultado se modificara al tiempo que modifico el valor de cualquiera de mis 20 textbox sin necesidad de hacer click en el botón.

    podrias suar el evento LostFocus de los textbox, asi cuando sales del mismo lanzas la accion

    private void textbox_lostFocus(...){
    
       Calculo();
    
    }
    
    private void button1_Click(...){
    
        Calculo();
    
    }
    
    private void Calculo(){
    
       //aqui codigo
    
    }


    como veras todas las acciones generan la misma accion de calculo

    si son 20 textbox en el form_load podrias hacer

    foreach(TextBox txt in this.Controls.OfType<TextBox>()){
    
       txt.LostFocus += textbox_lostFocus;
    
    }


    asi asignas a los 20 textbox el mismo evento dinamicamente

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    lunes, 11 de marzo de 2013 9:59
  • Hola, Leandro. Muchas gracias; muy útil. Pero me gustaría que se actualizara sin necesidad de salir del textbox. O sea que se actualice de inmediato. O no sé si exista alguna posibilidad de usar algun timer que dé la orden de actualizar cada determinado tiempo. Algo así como un loop.
    martes, 12 de marzo de 2013 3:14
  • podrias suar un timer si es que quieres calcular algo cada cierto tiempo, es tan solo arastar el control timer a tu formulario y ponerle un interval (recuerda que este valor se expresa en milisegundos, podrias poner cada tantos min que se actualice el valor)

    private void textbox_lostFocus(...){ Calculo(); } private void button1_Click(...){ Calculo(); }

    private void timer1_Tick(...){

    Calculo();

    }

    private void Calculo(){ //aqui codigo }


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    martes, 12 de marzo de 2013 7:28