以前にも投稿があった内容なのですが、再度質問させて下さい。
現在WebBrowserを使って読み込んだURL内のアンカー上にマウスを移動した
ときにアンカーの内容を下にポップアップしたいと思い、CreatePopup関数
を使ってみたのですが、イベント処理中に処理が停止する状況です。
Private HTMLwin As mshtml.HTMLWindow2
Private Sub WB_DocumentComplete(ByVal sender As System.Object, ByVal e As AxSHDocVw.DWebBrowserEvents2_DocumentCompleteEvent) Handles WB.DocumentComplete
Dim doc As mshtml.HTMLDocument
doc = WB.Document
AddHandler CType(doc, mshtml.HTMLDocumentEvents2_Event).onmouseover, AddressOf Document_onmouseover
End Sub
Private Sub Document_onmouseover(ByVal e As mshtml.IHTMLEventObj)
if e.srcElement.tagName = "A" Then
HTMLwin = WB.Document.parentWindow
Dim pop As mshtml.HTMLpopup = HTMLwin.createPopup() <- ここでイベントが終了してしまう。
endif
End Sub
デバッグモードでcreatePopupを代入する直前にてコマンドラインで実行すると、
「実行時例外がスローされました : System.ArgumentException - 引数が無効です。」
と表示されました。
HTMLwin.Documentを確認するとWB(WebBrowser)が読み込んだHTMLに
なっているようです。方法が悪いのでしょうか。
今もいろいろと調べてはいるのですが、何かポインタでも頂ければと思
い書込みさせてもらいました。内容は最小限のほうが良いと思い部分的
に抜き出しました。足りなかったらすいません・・・。
どうか宜しくお願いします。
HTMLDocumentとしてwb.documentを関数の引数にして
やってみたらどうでしょうか?
webbrowserコントロールから深い階層までアクセスできなかったような
気がします。
なぜか文字化けしますね・・・。
>>Danteさん
返答ありがとうございます。さっそく試みてみました。
Dim doc As mshtml.HTMLDocument
doc = WB.Document
HTMLwin = doc.parentWindow
Dim pop As mshtml.HTMLPopup = HTMLwin.createPopup()<-ここで止まる
と、以上の様に処理を変更してみましたが、やはり同様でした。
DebugモードにてDim pop〜 で止めて、コマンドウィンドウで実行
----
htmlwin.createPopup()
実行時例外がスローされました : System.ArgumentException - 引数が無効です。
----
ツイート | ![]() |