private void Form1_Load(object sender, EventArgs e) { bt_kreiraj.Click += (o, args) => { Raketa r = new Raketa(); r.Naziv = tb_naziv.Text; r.Boooom += (obj, a) => { Raketa raketa = (Raketa)obj; // obj je nekakva referenca na raketu koja je okinila događaj MessageBox.Show(raketa.Naziv, "Izgorila raketa event", MessageBoxButtons.OKCancel, MessageBoxIcon.Error); }; sveRakete.Add(r); cb_rakete.DataSource = null; // Ovo služi za refresh cb_rakete.DataSource = sveRakete; // Prikaži Naziv rakete cb_rakete.DisplayMember = "Naziv"; // Zovemo tri puta generičku funkciju sa različitim elementima Poruka <string>("Kreirana nova raketa i dodana u listu"); Poruka <int>(sveRakete.Count); Poruka <Raketa>(r); }; bt_plus.Click += (o, args) => { // Pročitaj iz Comba Raketa r = (Raketa)cb_rakete.SelectedItem; // SAmo povećaj za 100 brzinu r.Brzina += 100; }; }
private void Form1_Load(object sender, EventArgs e) { // Sender je sama forma Form1 forma = (Form1)sender; // Castaj u Form tip // MessageBox.Show("Hello " + forma.Text); bt_unesi.Click += (o, a) => // može biti samo += { // Lambda ima kontekst objekta u kojem se nalazi, this je forma Raketa raketa = new Raketa(); raketa.Ime = tb_ime.Text; raketa.Brzina = Double.Parse(tb_brzina.Text); // Try bi bio bolji // Prati kada raketa eksplodira raketa.Boom += (obj, args) => { Raketa r = obj as Raketa; // as je kao cast ali vrati null ako ne uspije MessageBox.Show(r.ToString(), "Eksplodirala", MessageBoxButtons.YesNo, MessageBoxIcon.Error); }; rakete.Add(raketa); DajAlert <Raketa>(raketa); // Dodaj u comboBox cb_rakete.DataSource = null; // Refresh cb_rakete.DataSource = rakete; cb_rakete.DisplayMember = "Ime"; }; bt_500.Click += (o, a) => { // Dohvati raketu koja se ubrzaje i ubrzaj Raketa raketa = cb_rakete.SelectedItem as Raketa; raketa.Brzina += 500; }; }