namespace MyFormNamespace
{
public partial class MyForm : Form
{
public MyForm()
{
MyEventArg e = new MyEventArg ();
e.Number = 1;
e.Message = "hello!";
OnMyEventReceived(e); //activate the event!
}
public event EventHandler<MyEventArg > MyEvent;
protected void OnMyEventReceived(MyEventArg e)
{
if (this.InvokeRequired)
{
MethodInvoker invoker = () => OnMyEventReceived(e);
this.Invoke(invoker);
}
else
{
EventHandler<MyEventArg> handler = MyEvent;
if (handler != null)
{
handler(this, e);
}
}
}
public class MyEventArg : EventArgs
{
public int Number;
public string Message;
}
}
//########## Another program ##########
using MyForm;
namespace MyForm2Namespace
{
public partial class MyForm2 : Form
{
public MyForm2()
{
MyForm firstForm = new MyForm();
firstForm.MyEvent += myCallbackMethod; //register for the event
}
//myCallbackMethod() will be called when the event is activated in the first form
private void myCallbackMethod(object sender, MyEventArg e)
{
richTextBox1.Text += e.Number.ToString() + "\n";
richTextBox1.Text += e.Message + "\n\n";
}
}
}
No comments:
Post a Comment