检测单击何时下载 winforms Web 浏览器组件中的文件

本文关键字:组件 文件 浏览器 Web 单击 何时 下载 winforms 检测 | 更新日期: 2023-09-27 18:32:31

我有一个简单的网页,我的网络浏览器组件中只显示 3 个链接:

<a href="/newpage1.html" id="el-1">Go to new page 1</a>
<a href="/newpage2.html" id="el-2">Go to new page 2</a>
<a href="/file.zip" id="el-1">Download file</a>

我在元素列表中为单击事件注册了一个事件处理程序

foreach (HtmlElement e in this.webBrowserMain.Document.GetElementsByTagName("a")){
    e.Click += this.SingleElementClickHandler;
}

假设服务器端为文件/file 发送了以下标头.zip

header('Content-type: application/zip');
header('Content-Disposition: attachment; filename="file.zip"');

如何编写 SingleElementClickHandler 以在下载文件时弹出带有文本"Hello"的消息框,而不是在打开另一个网页时弹出文本"Hello"?

我不能使用任何第三方组件。

检测单击何时下载 winforms Web 浏览器组件中的文件

this.webBrowserMain.FileDownload += 
    new EventHandler((x, y) => MessageBox.Show("Hello"));

在这里和这个SO问题中进行更多搜索后发现了这一点(即使它是wpf组件而不是winforms组件)。