In your constructor after creating an instance of frmEventGenerate :
frmGen.Evt += ReceiveEvent;
You no longer need new LinkEventHandler(...) - with C # 2, there is an available method group conversion that you can use to convert from a method group (method name) to a delegate type.
EDIT: I did not see your event being static. This suggests that you really should use:
frmEventGenerate.Evt += ReceiveEvent;
... and you don't need the frmGen variable.
However, I would strongly discourage you from this - why do you want the event to be static in the first place? (I would also strongly recommend that you name your types more intelligently - for example, something like “EventGenerator.” Ignoring the convention, the name of which should be in the case of Pascal, will lead to code confusion.)
source share