Нашел способ сделать это:
Шаг 1. Создайте базовый пользовательский элемент управления и определите делегатов и события в этом элементе управления.
Шаг 2. Создайте функцию Public в базовом пользовательском элементе управления, чтобы вызывать события, определенные в шаге 1.
'SourceCode for Step 1 and Step 2
Public Delegate Sub UpdatePageHeaderHandler(ByVal PageHeading As String)
Public Class CommonUserControl
Inherits System.Web.UI.UserControl
Public Event UpdatePageHeaderEvent As UpdatePageHeaderHandler
Public Sub UpdatePageHeader(ByVal PageHeadinga As String)
RaiseEvent UpdatePageHeaderEvent(PageHeadinga)
End Sub
End Class
Шаг 3. Унаследуйте свой пользовательский веб-элемент управления от базового пользовательского элемента управления, созданного на шаге 1.
Шаг 4. Из вашего пользовательского веб-элемента управления - вызовите имя MyBase.FunctionName, которое вы определили в Шаге 2.
'SourceCode for Step 3 and Step 4
Partial Class DerievedUserControl
Inherits CommonUserControl
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
MyBase.PageHeader("Test Header")
End Sub
End Class
Шаг 5. На своей странице загрузите элемент управления динамически, используя Page.LoadControl, и приведите элемент управления в качестве базового пользовательского элемента управления.
Шаг 6: Присоедините обработчики событий с этим элементом управления.
'SourceCode for Step 5 and Step 6
Private Sub LoadDynamicControl()
Try
'Try to load control
Dim c As CommonUserControl = CType(LoadControl("/Common/Controls/Test.ascx", CommonUserControl))
'Attach Event Handlers to the LoadedControl
AddHandler c.UpdatePageHeaderEvent, AddressOf PageHeaders
DynamicControlPlaceHolder.Controls.Add(c)
Catch ex As Exception
'Log Error
End Try
End Sub