我有下面的代码,但是当我点击网页时,它会触发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;
}
每次文档加载时,您都会意识到您将注册点击事件......因此可能会创建您正在描述的内容。 – 2010-11-17 19:41:10
是你的页面被加载到WebBrowser控件坐在窗体上? – dexter 2010-11-17 19:42:34
@ Max是的。 @Aaron谢谢我认为你是正确的,但我不知道如何使它只在最后一个documentComplete上添加事件处理程序? – Adrian 2010-11-17 19:52:50