I think you might want:
script.Load += script_OnLoad;
This will add your handler to the event. Then when the OnLoad
method is called, it will invoke your handler.
Your script_OnLoad method needs to look like this:
void script_OnLoad(object sender, ScriptEvent args)
{
// your code here - you can get the file name out of the args.File
}
Your Script.cs can be cut down to:
public EventHandler<ScriptEvent> Load;
protected virtual void OnLoad(string file)
{
if(Load != null)
Load(this, new ScriptEvent(file));
}