Ojala me ayuden con lo que creo es eventos y delegados

28/05/2004 - 00:50 por Lynx Baretta | Informe spam
Mi situacion la planteo de la siguiente manera aunque no es la real pero
esta es mas sencilla para mi de explicar y mas sencilla para ustedes de
responder mi duda:

Class Ejemplo
{
public class formInicio : System.Windows.Forms.Form
{
private void TotalSuma(int num1, int num2)
{
int total = num1 + num2;
MessageBox.Show("El total es " + total.ToString());
}
private System.Windows.Forms.Button btnSumar = new
System.Windows.Forms.Button();
btnSumar.Click += new System.EventHandler(this.TotalSuma(2, 2)); //
Mi duda es justamente aqui por que esto me daría un error ya que al parecer
no se pueden enviar parametros.
/*
Justamente esto es lo que les pido por favor me digan como es ya que
no es posible enviar parametros y quisiera ver como puedo hacerlo.
Creo que es necesario para esto saber del tema delegamos y eventos,
sin embargo ya estoy viendo algo de eso y aun no lo entiendo muy bien y les
pido por favor y ojala ustedes me puedan ilustrar como sería a
travez de este mismo ejemplo para yo asi poder entenderlo y aplicarlo a mi
caso.

De antemano muchas gracias.
*/
}
}

Preguntas similare

Leer las respuestas

#1 David
28/05/2004 - 06:54 | Informe spam
http://atomic.quilogy.com/mobility/...-hol13.htm

tienen una pequeña clase que utilizan el sistema pasandole parametros: (ver
en el enlace la clase public class ControlInvoker)
public void Invoke (MethodCallInvoker invoker, params object[]
arguments)

{

this.argumentInvokeList.Enqueue (new MethodCall
(invoker, arguments));

control.Invoke (new EventHandler (ControlInvoke));

}

"Lynx Baretta" escribió en el mensaje
news:
Mi situacion la planteo de la siguiente manera aunque no es la real pero
esta es mas sencilla para mi de explicar y mas sencilla para ustedes de
responder mi duda:

Class Ejemplo
{
public class formInicio : System.Windows.Forms.Form
{
private void TotalSuma(int num1, int num2)
{
int total = num1 + num2;
MessageBox.Show("El total es " + total.ToString());
}
private System.Windows.Forms.Button btnSumar = new
System.Windows.Forms.Button();
btnSumar.Click += new System.EventHandler(this.TotalSuma(2, 2)); //
Mi duda es justamente aqui por que esto me daría un error ya que al


parecer
no se pueden enviar parametros.
/*
Justamente esto es lo que les pido por favor me digan como es ya


que
no es posible enviar parametros y quisiera ver como puedo hacerlo.
Creo que es necesario para esto saber del tema delegamos y


eventos,
sin embargo ya estoy viendo algo de eso y aun no lo entiendo muy bien y


les
pido por favor y ojala ustedes me puedan ilustrar como sería a
travez de este mismo ejemplo para yo asi poder entenderlo y aplicarlo a mi
caso.

De antemano muchas gracias.
*/
}
}


Respuesta Responder a este mensaje
#2 Octavio Hernandez
29/05/2004 - 11:38 | Informe spam
Hola,

El problema es que a un evento no se puede asociar un delegado con un método
del tipo que a tí te convenga, sino sólo uno que satisfaga la 'firma' de
parámetros adecuada. En el caso del evento Click, el método que asocies
deberá tener dos parámetros (object sender, EventArgs e), y para otros
eventos la firma es más específica, como (object sender, MouseEventArgs e)
en el caso de los de ratón.

Si necesitas que el método tenga acceso a cierta información, puedes
declarar las variables correspondientes en el ámbito del formulario:

namespace Ejemplo
{
private int num1 = 0, num2 = 0; // variables de formulario
public class FormInicio : System.Windows.Forms.Form
{
private void TotalSuma(object sender, EventArgs e)
{
int total = num1 + num2;
MessageBox.Show("El total es " + total.ToString());
}
private System.Windows.Forms.Button btnSumar new System.Windows.Forms.Button();
btnSumar.Click += new System.EventHandler(this.TotalSuma);
// ...

"Lynx Baretta" escribió en el mensaje
news:
Mi situacion la planteo de la siguiente manera aunque no es la real pero
esta es mas sencilla para mi de explicar y mas sencilla para ustedes de
responder mi duda:

Class Ejemplo
{
public class formInicio : System.Windows.Forms.Form
{
private void TotalSuma(int num1, int num2)
{
int total = num1 + num2;
MessageBox.Show("El total es " + total.ToString());
}
private System.Windows.Forms.Button btnSumar = new
System.Windows.Forms.Button();
btnSumar.Click += new System.EventHandler(this.TotalSuma(2, 2)); //
Mi duda es justamente aqui por que esto me daría un error ya que al


parecer
no se pueden enviar parametros.
/*
Justamente esto es lo que les pido por favor me digan como es ya


que
no es posible enviar parametros y quisiera ver como puedo hacerlo.
Creo que es necesario para esto saber del tema delegamos y


eventos,
sin embargo ya estoy viendo algo de eso y aun no lo entiendo muy bien y


les
pido por favor y ojala ustedes me puedan ilustrar como sería a
travez de este mismo ejemplo para yo asi poder entenderlo y aplicarlo a mi
caso.

De antemano muchas gracias.
*/
}
}


email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida