C# の例を挙げて申し訳ありませんが、VB での方法を思い出せません...
とにかく、UserControl の Init では、メソッド宣言で「Handles」構文を使用する代わりに、Page_PreLoad メソッドを UserControl の Page プロパティの PreLoad イベントのハンドラーとして明示的に割り当てることができます。あなたの例が行っていることは、UserControl オブジェクトが発生させないイベントの UserControl オブジェクトのイベントにイベント ハンドラーを割り当てようとしていることです。ご指摘のとおり、UserControl は PreLoad イベントが存在する Page から継承しません。ただし、UserControl には Page オブジェクトがそのプロパティの 1 つとして含まれているため、PreLoad はハンドラーを割り当てることができるイベントとして公開されます。とにかく、これはコンパイルして、探しているように聞こえます (C スタイルのコメントを使用して、WMD 構文の強調表示を保持します)。
Protected Overrides Sub OnInit(ByVal e As System.EventArgs)
// this assigns Page_PreLoad as the event handler
// for the PreLoad event of the Control's Page property
AddHandler Me.Page.PreLoad, AddressOf Page_PreLoad
MyBase.OnInit(e)
End Sub
Private Sub Page_PreLoad(ByVal sender As Object, ByVal e As System.EventArgs)
// do something here
End Sub
それがあなたの目的に役立つかどうかはわかりません.Stephen Wrightonが上で示したように、ページライフサイクルのさまざまなイベントの1つを使用するより良い方法があるかもしれません. ただし、彼が言ったことに基づいて、これは機能するはずです。これは、イベント ハンドラーの割り当てが行われるコントロールの OnInit が呼び出され、次に Page の OnLoad イベントが発生し、コントロール内のイベント ハンドラーが実行されるためです。