0


0

コントロール上のすべてのマウスイベントをトラップするにはどうすればよいですか?

2 Answer


3


マウスメッセージをインターセプトするには、WndProc()をオーバーライドする必要があります。 このような:

using System;
using System.Windows.Forms;

class MyBrowser : WebBrowser {
    protected override void WndProc(ref Message m) {
        if (m.Msg >= 0x200 && m.Msg <= 0x20a) {
            // Handle mouse messages
            //...
        }
        else base.WndProc(ref m);
    }
}


3


これには解決策があります。 webBrowserコントロールに関連付けられているDocumentオブジェクトに関連付けられているマウスイベントをキャプチャする必要があります。

DocumentCompletedイベントが発生した後、DocumentCompletedイベントハンドラー内で、以下を実行します。

myWebBrowser.Document.MouseDown += new HtmlElementEventHandler(myMouseDown);

そして、関連するハンドラーがあります:

void myMouseDown(object sender, HtmlElementEventArgs e)

{
    your code to handle the mouse event... such as ...

            if (e.MouseButtonsPressed == MouseButtons.Right)
            {
            }
}