***
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.

// type-kastovanje komponente koja je kliknuta

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).

*******


Last modified: Monday, 10 March 2025, 11:11 PM