|
概要
WebBrowser コントロールに表示された HTML ページでは、WebBrowser コントロールの
BeforeNavigate2 イベントを使用して Visual Basic アプリケーション中のイベントをトリガで
きます。たとえば、クリックすると Visual Basic アプリケーションを終了するコマンド ボタンを
HTML ページの中に配置することができます。
詳細
Visual Basic で新しい標準 EXE プロジェクトを開始します。デフォルトで、Form1 が追加され
ます。プロジェクトのコンポーネントに Microsoft インターネット コントロールを追加します。
Form1 に WebBrowser コントロールを追加します。
以下のように、Form1 の Load イベント用のコードを追加します。
Private Sub Form_Load()
WebBrowser1.Navigate "c:\mytest.htm"
End Sub
以下のように、WebBrowser1 の BeforeNavigate2 イベント用のコードを追加します。
Private Sub WebBrowser1_BeforeNavigate2(ByVal pDisp As Object, _
URL As Variant, Flags As Variant, _
TargetFrameName As Variant, PostData As Variant, _
Headers As Variant, Cancel As Boolean)
Dim Ev As String
If UCase$(Left$(URL, 6)) = "EVENT:" Then
'this is our event, process it and cancel navigation
Ev = UCase$(Mid$(URL, 7))
Select Case Ev
Case "HELLO"
MsgBox "Hello from VB App"
'set a field on HTML page
WebBrowser1.Document.All("field1").Value = _
"Hello from VB"
Case "CLOSE"
If MsgBox("Are you sure you want to exit?", _
vbYesNo) = vbYes Then
End
End If
End Select
Cancel = True
End If
End Sub
メモ帳で以下のテキストを入力し、c:\mytest.htm またはほかの場所に保存します
(手順 3. で指定した場所と同じ場所に保存してください)。
<HTML><BODY>
<INPUT type=text name=field1><p>
<INPUT type=button name=Hello value="Hello World">
<INPUT type=button name=Close value="Close App">
<SCRIPT LANGUAGE="VBScript">
Sub Close_OnClick()
location.href = "Event:Close"
End Sub
Sub Hello_OnClick()
location.href = "Event:Hello"
End Sub
</SCRIPT>
</BODY></HTML>
Visual Basic でプロジェクトを実行します。
| |