PAMIĘTAJ O PODPIĘCIU EVENTÓW W Form1: public partial class Form1 : Form { public delegate void kom_z_Form1(string msg); private kom_z_Form1 obiektKomunikacyjny; private Form2.kom_z_Form2 messanger_do_F2; private void wpiszCos(string x) { textBox2.Text = x; } public Form1() { InitializeComponent(); obiektKomunikacyjny = new kom_z_Form1(wpiszCos); } private string tekst; Form2 form2 = null; private void button1_Click(object sender, EventArgs e) { tekst = textBox1.Text; if (form2 == null) { form2 = new Form2(obiektKomunikacyjny); messanger_do_F2 = form2.pobierz_delegata_z_F2(); } messanger_do_F2(tekst); form2.Show(); } } W Form2: public partial class Form2 : Form { Form1.kom_z_Form1 delegat; public delegate void kom_z_Form2(string msg); private kom_z_Form2 obiektKomunikacyjny2; public kom_z_Form2 pobierz_delegata_z_F2() { return obiektKomunikacyjny2; } public Form2() { InitializeComponent(); obiektKomunikacyjny2 = new kom_z_Form2(wypisz); } public Form2( Form1.kom_z_Form1 del_komunikacyjny_z_F1) { InitializeComponent(); delegat = del_komunikacyjny_z_F1; obiektKomunikacyjny2 = new kom_z_Form2(wypisz); } private void Form2_FormClosing(object sender, FormClosingEventArgs e) { this.Hide(); e.Cancel = true; } public void wypisz(string x) { textBox2.Text = x; } private void button1_Click(object sender, EventArgs e) { delegat(textBox1.Text); } }