none
¿Se puede desencadenar un evento vía código explícitamente? Explico. RRS feed

  • Pregunta

  • Suponiendo que tengo un control CheckBox1, si hago esta asignación en el código:

    CheckBox1.CheckState = CheckState.Checked

    Al cambiar de estado se desencadena el evento CheckBox1_CheckedChanged()

    Otra forma de ejecutar ese evento sería invocando al procedimiento de evento directamente: CheckBox1_CheckedChanged()

    Pero lo que consulto es si se puede desencadenar explícitamente el evento, o sea no de manera indirecta sino con un comando que equivalga a: DESENCADENA_TAL_EVENTO... y se desencadene.

    (ojalá que se haya entendido lo que consulto).

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

    Actualizo, algo así como: Button1.PerformClick()

    pero algo general, para desencadenar cualquier evento (no sólo el evento click).


    • Editado James2016-2 viernes, 14 de junio de 2019 22:38
    viernes, 14 de junio de 2019 22:32

Respuestas

  • Hola James2016-2,

    Me temo que no existe tal evento como tal para desencadenar una acción, es decir un disparador o trigger por definición en las clases que enuncias, quizá en otra parte de tu código las haya.

    Sin embargo puedes utilizar las propiedad del evento CheckStateChanged para definir tu propio trigger o de lo contrario utilizar las propiedades de otra clase en tu código como las que estarían en la clase Button1. 

    CheckBox.CheckStateChanged Event

    Déjeme saber sus comentarios.

    No dudes en ampliar más sobre este tema si es que aún lo requirieras o de abrir una nueva consulta en caso de tener alguna situación o necesitarla con algún otro de los productos de Microsoft.

     

    Adicional le invito a consultar los siguientes recursos:

    Guía para formular preguntas en el foro

    Channel 9 - donde puedes encontrar una sección de: desarrollo con VB.NET  

     

    Gracias por usar los foros de MSDN.

    Erick Rivera

     ____

     

    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.

    • Marcado como respuesta James2016-2 sábado, 22 de junio de 2019 0:47
    viernes, 21 de junio de 2019 18:22
  • Podrías heredar de la clase CheckBox y usar tu clase heredada en lugar del CheckBox original.

    Dentro de la clase puedes disparar el evento en la forma habitual:

    CheckedChanged(Me, EventArgs.Empty)

    Recuerda poner un "If" para no dispararlo si no tiene conectado ningún manejador, porque en ese caso CheckedChanged vale Nothing y da un error si lo intentas llamar.

    Si lo quieres hacer desde fuera de la clase, pon en la clase un método público tal como DispararEvento() y dentro ejecuta el código anterior. Y desde fuera llamas a ese método.

    • Marcado como respuesta James2016-2 sábado, 22 de junio de 2019 0:47
    viernes, 21 de junio de 2019 19:18

Todas las respuestas

  • Hola James2016-2,

    Me temo que no existe tal evento como tal para desencadenar una acción, es decir un disparador o trigger por definición en las clases que enuncias, quizá en otra parte de tu código las haya.

    Sin embargo puedes utilizar las propiedad del evento CheckStateChanged para definir tu propio trigger o de lo contrario utilizar las propiedades de otra clase en tu código como las que estarían en la clase Button1. 

    CheckBox.CheckStateChanged Event

    Déjeme saber sus comentarios.

    No dudes en ampliar más sobre este tema si es que aún lo requirieras o de abrir una nueva consulta en caso de tener alguna situación o necesitarla con algún otro de los productos de Microsoft.

     

    Adicional le invito a consultar los siguientes recursos:

    Guía para formular preguntas en el foro

    Channel 9 - donde puedes encontrar una sección de: desarrollo con VB.NET  

     

    Gracias por usar los foros de MSDN.

    Erick Rivera

     ____

     

    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.

    • Marcado como respuesta James2016-2 sábado, 22 de junio de 2019 0:47
    viernes, 21 de junio de 2019 18:22
  • Podrías heredar de la clase CheckBox y usar tu clase heredada en lugar del CheckBox original.

    Dentro de la clase puedes disparar el evento en la forma habitual:

    CheckedChanged(Me, EventArgs.Empty)

    Recuerda poner un "If" para no dispararlo si no tiene conectado ningún manejador, porque en ese caso CheckedChanged vale Nothing y da un error si lo intentas llamar.

    Si lo quieres hacer desde fuera de la clase, pon en la clase un método público tal como DispararEvento() y dentro ejecuta el código anterior. Y desde fuera llamas a ese método.

    • Marcado como respuesta James2016-2 sábado, 22 de junio de 2019 0:47
    viernes, 21 de junio de 2019 19:18
  • Gracias.
    sábado, 22 de junio de 2019 0:47
  • Gracias.
    sábado, 22 de junio de 2019 0:47