Cześć,
Mam taki kod:
int counter = 0;
for (int i = 0; i < height; i++)
{
for (int j = 0; j < width; j++)
{
PictureBox picturebox = new PictureBox();
picturebox.Name = "image_" + counter;
picturebox.Height = 300;
picturebox.Width = 400;
picturebox.Load(_collection_of_streamers[counter].image);
picturebox.Top = coords[i, j].X;
picturebox.Left = coords[i, j].Y;
///
string link = _collection_of_streamers[counter].image;
picturebox.Click += (sender, e) => Picturebox_Click(sender, e, link);
///
counter++;
}
}
private void Picturebox_Click(object sender, EventArgs e, string link)
{
Gallery gallery = new Gallery(link);
gallery.Show();
}
I pytanie:
Dlaczego te dwa sposoby przekazania parametru do tego eventhandlera dają różne rezultaty?
Tutaj wszystko działa tak jak ma działać, każdy picturebox onClick dostaje inny obrazek:
string link = _collection_of_streamers[counter].image;
picturebox.Click += (sender, e) => Picturebox_Click(sender, e, link);
A tutaj jest ten sam obrazek w każdym.:
picturebox.Click += (sender, e) => Picturebox_Click(sender, e, _collection_of_streamers[counter].image);
chodzi o coś dot. typów referencyjnych/wartościowych?