How to access an event from another Form ?

I

ital1

Hi

I have created one form that has an event handler, coded in the
following lines :


(ON FORM1 : Picture Boxes, when clicked they fire events)

this.OnPADClick += new FrmPAD.OnPADClickEventHandler
(this.FrmPAD_OnPADClick);

private void ArrowUp_Click(object sender, System.EventArgs e)
{
int iNumToPass = 0;
System.EventArgs p = new System.EventArgs();
OnPADClick (this, p, iNumToPass);
return;
}

public delegate void OnPADClickEventHandler (object sender,
System.EventArgs e, long num);
public event OnPADClickEventHandler OnPADClick;

private void FrmPAD_OnPADClick (object sender, System.EventArgs e, long
theNum)
{
switch(theNum)
{
case 0:
MessageBox.Show("Click on PictureBox !");
break;
default:
break;
}
}



(ON FORM2, What I want to do) :

I need to get the event from another form (Form2), using the same kind
of function as "private void FrmPAD_OnPADClick(object sender,
System.EventArgs e, long theNum);"

Could anyone point me in the right direction... What piece of code to
add to Form2 to get events fired from Form1 ?

Thank you very much.
 
J

Justin

Are they in the same namespace? The same class? If you can reference
Form2 from Form1 then you can set up a custom event in Form2 and have
Form1 subscribe to it. Wherever you create Form2 and have a reference
to it, you can do exactly what you do at the beginning of your code
block.

<reference to Form2>.<Form2 event you want to capture> +=
FrmPAD_OnPADClick (etc.)

Here's an example.

Form2 code

public event FrmPAD.OnPADClickEventHandler somethingHappened;

public void FunctionThatCausesEventToFire()
{
somethingHappened(this, new EventArgs());
}

Form1 code

Form2 instanceName = new Form2();
instanceName.somethingHappened += new
FrmPAD.OnPADClickEventHandler(this.FrmPAD_OnPADClick);

That should cause FrmPAD_OnPADClick to get called when the event
happens in Form2. Hope that helps.
 
I

ital1

Great! That works perfectly... I did try the same thing, but without
using an instantiated version of the form that fires the event...

What I did is to centralize all the form on an unique class (that
memorizes handles to the different forms) and to subscribe to the event
as you describe...

Thank you VERY VERY VERY much, that helps me a lot ! :)



Justin a écrit :
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top