BandaAncha

  • 🔍 en 📰 artículos ⏎
  • 🔍 en 💬 foros ⏎
  • 🔍 en 👇 este 💬 foro ⏎
  • 🔍 en 👇 este 💬 tema ⏎
Regístrate Regístrate Identifícate Identifícate

[C#] ¿Invocar manualmente un manejador de eventos?

BocaDePez

Buenas... tengo una pequeña duda, a ver si alguien me puede echar una mano...

Supongamos que yo tengo en mi aplicación un manejador de eventos típico, algo así:

 private void myEventHandler(object sender, EventArgs e)

 {

 //Mi código para tratar el evento

 }

Es una mala práctica, poco recomendable, problemática, etc, invocar manualmente al manejador porque el código que incluye me sirve para otras situaciones (por ejemplo, inicializar el estado de ciertos elementos en una ventana al mostrarla), algo así:

 public myClass()

 {

 InitializeComponent();

 myEventHandler(null, EventArgs.Empty);

 }

¿O sería más apropiado incluir //Mi código para tratar el evento en una función y llamar a la misma desde el manejador de eventos y el constructor (en este caso)?

Muchas gracias.

Este tema está cerrado a nuevas respuestas. Abre un nuevo tema para retomar la conversación.
djnacho

Lo ideal, es que el evento sólo se invoque, cuando el evento suceda. Es decir, si escribes código, para que cuando se pulse un botón, se haga algo, ese algo, sólo se debería ejecutar cuando se pulse el botón, y no invocando el evento en cualquier parte del código. Es un consejo, por supuesto.

Un saludo :)

🗨️ 4
BocaDePez

Lo tendré en cuenta.

Gracias de nuevo. :D

🗨️ 3
Calario

si el codigo lo necesitas en varias partes lo mas academico es que ese codigo lo definas en un procedimiento y que invoques ese procedimiento en el gestor del evento y en las otras partes donde lo necesites

lo otro que propones funcionar lo que se dice funcionar va a funcionar igual y resulta mas facil de escribir pero resultara muy complicado de entender para alguien que lea tu codigo

al programar siempre tienes que pensar en que alguien vendra despues a pegarse con lo que tu hayas escrito asi que cuanto mas claro mejor

🗨️ 2
BocaDePez

solo cambia el private por public y podras acceder a el desde cualquier lugar

🗨️ 1