c# - Parámetros adicionales de MouseEventHandler: "remitente" y "e" no se pueden definir
event-handling argument-passing (3)
Debería ser suficiente para cambiar el sender
a otra cosa, por ejemplo:
pb.MouseDoubleClick +=
new MouseEventHandler((se,e) => showLargeImage(se,e,imageIndex));
Quiero pasar un argumento a un controlador de eventos que estoy tratando de lograr con este código:
private void openInputImagesToolStripMenuItem_Click(object sender, EventArgs e)
{
...
pb.MouseDoubleClick += new MouseEventHandler((sender,e) => showLargeImage(sender,e,imageIndex));
}
private void showLargeImage(object sender, MouseEventArgs e, int imageIndex)
{
...
}
Sin embargo, estoy obteniendo un error en las variables "emisor" y "e" dentro del adaptador:
A local variable named ''sender'' cannot be declared in this scope because it would give a different meaning to ''sender'', which is already used in a ''parent or current'' scope to denote something else.
A local variable named ''e'' cannot be declared in this scope because it would give a different meaning to ''sender'', which is already used in a ''parent or current'' scope to denote something else.
¿Como puedo resolver esto?
No puede nombrar el parámetro de su sender
método lambda y e
, como le dice el compilador.
openInputImagesToolStripMenuItem_Click
una ambigüedad entre el sender
del parámetro del método openInputImagesToolStripMenuItem_Click
y el parámetro del método lambda.
Solo usa otros nombres, como
pb.MouseDoubleClick += new MouseEventHandler((s, e1) => showLargeImage(s, e1,imageIndex));
Usted tiene una redefinición de sender
y e
dentro de su lambda y eso no está permitido:
private void openInputImagesToolStripMenuItem_Click(object sender, EventArgs e)
{
...
pb.MouseDoubleClick += new MouseEventHandler((s,x) => showLargeImage(sender,e,imageIndex));
}