Kastovanje komponente iz programskog koda
***
Ako kliknete na sliku, treba da se nešto desi sa njom. U našem slučaju treba da se dobiju poeni i da se slika pomeri negde pri vrhu forme. Ako biste za svaku sliku kreirali poseban događaj Click - nije problem ako imate malo slika na formi.
Ali, šta ako na primer imate 150 slika?
Ako pogledate kako izgleda metoda
private void pictureBox1_Click(object sender, EventArgs e)
{
vidite da postoji kao prvi parametar "object sender" - to je u stvari onaj objekat na koji je kliknuto. ( U našem primeru se klikće na pictureBox.)
E sada, možemo da upotrebimo taj object sender da identifikujemo ko je kliknuo i da se onda kreira programski kod koji se odnosi samo na objekat koji je u stvari uradio taj klik - i da se taj objekat pomeri na neku slučajnu poziciju pri vrhu forme.
PictureBox ovaSlika = (PictureBox)sender;
var opseg = this.Size - ovaSlika.Size;
var pozicijax = R.Next(0, opseg.Width);
ovaSlika.Location = new Point(pozicijax, 0);
Sender je objekat koji treba da se tretira kao PictureBox - za to nam služi zagrada ispred - pa se to ubaci u lokalnu promenljivu koju smo nazvali ovaSlika. Dalje se sa tom lokalnom promenljivom radi kao i sa svakim drugim pictureBox-om.
Na ovaj način može da se ista metoda dodeli svim ostalim slikama i da se klikom na sliku dotična (kliknuta) slika pomeri (i dodaju bodovi po potrebi).
*******