У меня есть код ниже, но когда я нажимаю на веб-страницу, он стреляет 2-6 раз. Как я могу сделать это просто огнем один раз?C# webBrowser HTMLDoc.Click срабатывает более одного раза, почему?
private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
if (webBrowser1.Document != null)
{
htmlDoc = webBrowser1.Document;
htmlDoc.Click += htmlDoc_Click;
//htmlDoc.MouseDown += htmlDoc_MouseDown;
//htmlDoc.MouseMove += htmlDoc_MouseMove;
htmlDoc.ContextMenuShowing += htmlDoc_ContextMenuShowing;
}
}
void htmlDoc_Click(object sender, HtmlElementEventArgs e)
{
Console.WriteLine("Mouse Click");
if (e.CtrlKeyPressed)
{
if (webBrowser1.Document.GetElementFromPoint(e.ClientMousePosition).InnerHtml != null)
{
//MessageBox.Show(webBrowser1.Document.GetElementFromPoint(webBrowser1.PointToClient(MousePosition)).InnerText.ToString());
Debug.WriteLine(webBrowser1.Document.GetElementFromPoint(e.ClientMousePosition).InnerHtml);
}
e.ReturnValue = false;
return;
}
// stop mouse events moving on to the HTML doc return false
e.ReturnValue = true;
}
Вы понимаете, что каждый раз, когда документ загружается, вы регистрируетесь для события click ... таким образом, потенциально создавая то, что вы описываете. –
Ваша страница загружается в элемент управления WebBrowser, сидя на форме? – dexter
@ Max да. @ Аарон спасибо, я думаю, вы правы, но я не уверен, как это сделать, только добавление обработчика событий на последнем documentComplete? – Adrian