WebBrowserでpopupを表示するには


あけ  2005-02-23 07:22:36  No: 88565

以前にも投稿があった内容なのですが、再度質問させて下さい。

現在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に
なっているようです。方法が悪いのでしょうか。

今もいろいろと調べてはいるのですが、何かポインタでも頂ければと思
い書込みさせてもらいました。内容は最小限のほうが良いと思い部分的
に抜き出しました。足りなかったらすいません・・・。

どうか宜しくお願いします。


Dante  2005-02-25 00:55:28  No: 88566

HTMLDocumentとしてwb.documentを関数の引数にして
やってみたらどうでしょうか?
webbrowserコントロールから深い階層までアクセスできなかったような
気がします。


あけ  2005-02-25 22:55:57  No: 88567

なぜか文字化けしますね・・・。

>>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 - 引数が無効です。
----


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加