C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


(過去ログ 87 を表示中)
■51775 / )  HtmlElementのAttachEventHandler
□投稿者/ ほっしゅ (1回)-(2010/07/18(Sun) 07:22:22)

分類:[VB.NET/VB2005 以降] 

(VB 2008)
以下の質問を参考に、WebBrowser上のリンクをクリックしたときに、
VB側でも処理を行いたいと思います。

http://bbs.wankuma.com/index.cgi?mode=al2&namber=46863&KLOG=79

ここで、色々と試した結果、以下のソースのように、<a>タグにAttachEventHandlerで設定したイベントハンドラ
(以下のソースでは"Test")を設定してみましたが、<a>タグのhrefに、
<a href="#dummy">ここをクリック</a>
のように、hrefに#で始まるものが設定されている場合、ここをクリックするたびに、
イベントハンドラが呼び出される回数が増えてしまいます。
例) 1回目クリック…クリック後、イベントハンドラが1回呼び出される
   2回目クリック…クリック後、イベントハンドラが2回呼び出されてしまう
   3回目クリック…クリック後、イベントハンドラが3回呼び出されてしまう
                ・
                ・
                ・
以下にソースを記載します。
    Private Sub WebBrowser1_DocumentCompleted(ByVal sender As System.Object, ByVal e As System.Windows.Forms.WebBrowserDocumentCompletedEventArgs) Handles WebBrowser1.DocumentCompleted
        For Each atag As HtmlElement In WebBrowser1.Document.GetElementsByTagName("A")
            atag.AttachEventHandler("onclick", AddressOf Test)
        Next
    End Sub

おそらく、<a href="#dummy">のリンクをクリックした場合もWebBrowser1_DocumentCompletedが発生してしまうので、
ここをクリックするたびにAttachEventHandlerで同じイベントハンドラが追加され続けるのだと思うのですが、
この回避方法はないでしょうか?
みなさまのアドバイスお願いします。

返信 編集キー/


管理者用

- Child Tree -