Как обнаружить двойной щелчок на элементе управления WebBrower? - PullRequest
2 голосов
/ 13 мая 2010

В приложении WinForms мне нужно определить, когда дважды щелкается содержимое System.Windows.Forms.WebBrowser, что, в свою очередь, открывает диалоговое окно настраиваемой формы win.

Я отмечаю, что WebBrowserBase отключает событие Control.DoubleClick, но я не знаю, как переопределить это поведение.

1 Ответ

9 голосов
/ 13 мая 2010

MouseDown тоже отключен. Это потому, что события мыши отправляются в DOM. Вы можете подписаться на события DOM с помощью метода HtmlElement.AttachEventHandler (). Например:

public partial class Form1 : Form {
    public Form1() {
        InitializeComponent();
        webBrowser1.Url = new Uri("http://stackoverflow.com");
        webBrowser1.DocumentCompleted += webBrowser1_DocumentCompleted;
    }

    void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e) {
        webBrowser1.Document.Body.AttachEventHandler("ondblclick", Document_DoubleClick);
    }

    void Document_DoubleClick(object sender, EventArgs e) {
        MessageBox.Show("double click!");
    }
}
...