0

このような質問がたくさんあるようですが、答えが見つかりません。

このスレッドのような OnClick イベントを実装しました: http://support.microsoft.com/?kbid=312777 しかし、その結果、ブラウザーは完全に無効になります (スクロールバー、コントロール...)。

インターネットを検索しましたが、明確な解決策が見つかりませんでした。

WsbBrowser から継承された新しいクラスを作成し、それらのイベントをオーバーロードする必要があると言う人もいます。他の人は、答えはここにあると言いますhttp://www.experts-exchange.com/Programming/Languages/C_Sharp/Q_20661377.htmlしかし、私はアカウントを持っていません。

 private void FormBrowser_DocumentComplete(object sender, DWebBrowserEvents2_DocumentCompleteEvent e)
    {
        mshtml.HTMLDocument doc;
        doc = (mshtml.HTMLDocument)FormBrowser.Document;
        mshtml.HTMLDocumentEvents2_Event iEvent;
        iEvent = (mshtml.HTMLDocumentEvents2_Event)doc;
        iEvent.onclick += new HTMLDocumentEvents2_onclickEventHandler(ClickEventHandler);
    }

private bool ClickEventHandler(mshtml.IHTMLEventObj e)
    {
        return true;
    }

誰が解決策を知っていますか?

4

1 に答える 1

0

AxWebBrowser HTML 要素の onclick イベントを処理する方法を見つけました。これがあなたがする必要があることです:

まず、ディスパッチャ クラスを作成する必要があります。

public class DispatcherSketchClass
    {
        public DispatcherSketchClass()
        {
        }
        [DispId(0)]
        public void DefaultMethod()
        {
        //this method will be called
        }
    }

次に、このディスパスをいくつかの要素にアタッチします。

 void AddDispatcher(AxWebBrowser browser)
        {
            IHTMLDocument2 doc = (IHTMLDocument2)browser.Document;

            foreach (IHTMLElement VARIABLE in doc.all)
            {
                //find right element
                if (VARIABLE.title == "the name")
                {
                    // attach here               
                    DispatcherClass dp = new DispatcherClass();
                    VARIABLE.onclick = dp;
                }

            }
         }

お役に立てれば。

于 2012-06-12T12:29:07.690 に答える