This seems to be a problem that lots of people stumble upon.
Here's the VB solution I've gone with.
Thanks to the following link for the inspiration:
See Here
In my master page I declare a delegate outside the Class
Public Delegate Sub SaveButtonClickHandler(ByVal sender As Object, _
ByVal e As System.Web.UI.ImageClickEventArgs)
Inside the class I declare an event based on the delegate
Public Event SaveButtonClick As SaveButtonClickHandler
In the click event of my button on the master page I raise the above event
RaiseEvent SaveButtonClick(Me, e)
In my content page (the aspx page) I add the following
<%@ MasterType virtualPath="~/WorkflowFrameCommon.master"%>
In my Content page (the code behond page), I add a button Handler as normal
Protected Sub Save_Click(ByVal sender As Object, _
ByVal e As System.Web.UI.ImageClickEventArgs)
End Sub
And in the page_load of my code behind page I hook up my event to the
event in the Masterpage
AddHandler Master.SaveButtonClick, AddressOf Save_Click
Simple? No.
But I get to go home, rather than spending all night re-architecting a system, so I'll call this a lucky escape.
Thanks Simon for pointing me in the right direction.
-Rd