解决方案 »
- 用C#如何操控QQ客户端呢?
- Wcf服务的安全性
- C# winform 值得思考问题
- PrintDocument 打印状态
- 为什么用SpeechSynthesizer在异步朗读时无法改变朗读的速度和音量……
- C#操作Excel表并与其同步
- 怎样用SqlDataAdapter的Update方法直接把数据跟新到数据源
- 一个人忙不过来,C#程序找人兼职帮完成一点东西
- 关于xml的问题
- 请问C#开发的应用程序能否在没装.net framework 的WINDOWS平台上运行?
- c#调用SQLSERVER中数据 显示outofrangeexception 但是数据库中 是有记录的
- C#如何用webBroswer来打开新窗口
你直接 webBrowser1.Document.Click+=new HtmlElementEventHandler(Document_Click); 这样监听事件,每一次都会添加一次,当然就会点一次多次执行了。你应该写成
webBrowser1.Document.Click-=new HtmlElementEventHandler(Document_Click);
webBrowser1.Document.Click+=new HtmlElementEventHandler(Document_Click);
先删除监听,然后再重新监听。
还有办法就是判断 DocumentCompleted事件执行时的 Document状态是不是已经完成。
private void Browser_DocumentCompleted(object sender, System.Windows.Forms.WebBrowserDocumentCompletedEventArgs e)
{
WebBrowser browser = sender as WebBrowser;
if (browser.ReadyState < System.Windows.Forms.WebBrowserReadyState.Complete)
return;
webBrowser1.Document.Click+=new HtmlElementEventHandler(Document_Click);
}点击事件是不是被执行多次,不是因为你有没有阻止冒泡。而是你添加了多次事件监听。