Пример подключения событий:
Файл: Form2.cs
using System;
using System.Windows.Forms;
namespace SO_Suffix
{
public partial class Form2 : Form
{
//< The delegate needs to be defined as public in the form that
//< is raising the event...
public delegate void ButtonClickedOnForm2 (object sender, EventArgs e);
public Form2()
{
InitializeComponent();
this.button1.Click += new System.EventHandler(this.Button1_Click);
}
//< Capture the click event from the button on Form2, and raise an event
void Button1_Click(object sender, EventArgs e)
{
ButtonClicked(this, e);
}
public event ButtonClickedOnForm2 ButtonClicked;
}
}
Form1.cs: теперь просто подписывается на событие
using System;
using System.Windows.Forms;
namespace SO_Suffix
{
public partial class Form1 : Form
{
Form2 form2 = new Form2();
public Form1()
{
InitializeComponent();
//< subscribe to the custom event from form2 and set which function to delegate it to ( form2_ButtonClicked )
form2.ButtonClicked += new Form2.ButtonClickedOnForm2(form2_ButtonClicked);
form2.Show();
}
private void form2_ButtonClicked(object sender, EventArgs e)
{
this.Controls.Add(new Button());
}
}
}