まず第一に、これをどこにもぶら下げることはできません。
Dim arg() As Object = {homeTeam, guestTeam}
AddHandler browser.DocumentCompleted,
New WebBrowserDocumentCompletedEventHandler(AddressOf DoStuff)
AddHandler
おそらく、 inside 、 after 、または inside 、またはトリガーされると予想されるとすぐに(特定のイベントの後) 、何らかのInitialize
メソッドに含める必要があります。ここでは、ネイティブ .NET コンポーネントのデフォルト イベントをデフォルトのイベント タイプで使用していることに注意してください。この場合、トリガーされたときに、既に提供されているもの以外を直接消費することはできません。MSDN の WebBrowser.DocumentCompleted イベントを参照してください。Sub New
InitializeComponent
Form_Load
ただし、関連するすべてのクラスをオーバーライドして、独自の MyWebBrowser コントロールと独自のイベントを作成し、追加のプロパティを含めることができます。以下の例を参照してください。
Public Class Form1
Sub New()
' This call is required by the designer.
InitializeComponent()
Dim browser As New MyWebBrowser
AddHandler browser.MyDocumentCompleted, AddressOf DoStuff
End Sub
Private Sub DoStuff(ByVal sender As Object, ByVal e As MyWebBrowserDocumentCompletedArgs)
Dim guestTeam As String = e.GuestTeam 'guest team
Dim homeTeam As String = e.HomeTeam 'and home team are both accessible
'so you can do some processing on them
End Sub
Public Class MyWebBrowserDocumentCompletedArgs : Inherits WebBrowserDocumentCompletedEventArgs
Dim _homeTeam As String
Dim _guestTeam As String
Public ReadOnly Property HomeTeam
Get
Return _homeTeam
End Get
End Property
Public ReadOnly Property GuestTeam
Get
Return _guestTeam
End Get
End Property
Sub New(url As Uri, homeTeam As String, guestTeam As String)
MyBase.New(url)
_homeTeam = homeTeam
_guestTeam = guestTeam
End Sub
End Class
Public Class MyWebBrowser : Inherits WebBrowser
Public Delegate Sub MyWebBrowserDocumentCompletedEventHandler(e As MyWebBrowserDocumentCompletedArgs)
Public Event MyDocumentCompleted As MyWebBrowserDocumentCompletedEventHandler
Protected Overrides Sub OnDocumentCompleted(e As System.Windows.Forms.WebBrowserDocumentCompletedEventArgs)
MyBase.OnDocumentCompleted(e)
'homeTeam and guestTeam need to be extracted from the current instance of MyWebBrowser, and passed further
RaiseEvent MyDocumentCompleted(New MyWebBrowserDocumentCompletedArgs(e.Url, "homeTeam", "guestTeam"))
End Sub
End Class
End Class
プロジェクトが比較的小さい場合は、@Vlad がコメントで示唆しているように、実際にそれらをグローバル変数として使用できます。