これを行う方法を見つけました:
ステップ 1: ベース ユーザー コントロールを作成し、このコントロールでデリゲートとイベントを定義します。
ステップ 2: ステップ 1 で定義したイベントを発生させるために、ベース ユーザー コントロールに Public 関数を作成します。
'ステップ 1 とステップ 2 のソースコード
Public Delegate Sub UpdatePageHeaderHandler(ByVal PageHeading As String)
パブリック クラス CommonUserControl
System.Web.UI.UserControl を継承
Public イベント UpdatePageHeaderEvent As UpdatePageHeaderHandler
Public Sub UpdatePageHeader(ByVal PageHeadinga As String)
RaiseEvent UpdatePageHeaderEvent(PageHeadinga)
サブ終了
クラス終了
手順 3: 手順 1 で作成した基本ユーザー コントロールから Web ユーザー コントロールを継承します。
ステップ 4: Web ユーザー コントロールから - ステップ 2 で定義した MyBase.FunctionName を呼び出します。
'ステップ 3 とステップ 4 のソースコード
部分クラス DerievedUserControl
CommonUserControl を継承
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) は Me.Load を処理します
MyBase.PageHeader("テスト ヘッダー")
サブ終了
クラス終了
ステップ 5: ページで、Page.LoadControl を使用してコントロールを動的にロードし、コントロールをベース ユーザー コントロールとしてキャストします。
ステップ 6: このコントロールにイベント ハンドラーをアタッチします。
'ステップ 5 とステップ 6 のソースコード
Private Sub LoadDynamicControl()
試す
'コントロールのロードを試みる
Dim c As CommonUserControl = CType(LoadControl("/Common/Controls/Test.ascx", CommonUserControl))
'イベント ハンドラーを LoadedControl にアタッチします
AddHandler c.UpdatePageHeaderEvent、AddressOf PageHeaders
DynamicControlPlaceHolder.Controls.Add(c)
ex を例外としてキャッチ
'ログエラー
エンドトライ
サブ終了