C# - 覆盖WebBrowserDocumentCompletedEventHandler的事件标记

时间:2012-01-16 14:30:31

标签: c# event-handling browser override eventargs

我想覆盖事件EventArgs的{​​{1}}。我无法创建个人事件处理程序,因为我不知道何时应该触发事件WebBrowserDocumentCompleted。我要添加到DocumentDownloadCompleted的数据是EventArgs

我正在尝试下载页面,但我被重定向到登录页面(仅一次)。我已经设置了一种登录方式,但后来我想重新尝试导航到原始页面,但我不再拥有它了。我可以设置一个全局变量来跟踪每次链接,但有没有办法编辑OriginalPageLink?我是否还需要修改EventArgs

我的代码看起来像

WebBrowserDocumentCompletedEventHandler

提前感谢您提出任何建议。

2 个答案:

答案 0 :(得分:0)

您只需要锁定WebBrowser.Navigating事件,即可使用某种集合跟踪导航历史记录。在登录发生之前返回上一页。 Navigate事件将触发导航并删除以前的网址,因此您需要管理集合或仅限制在您所在州管理的项目。

答案 1 :(得分:0)

你可以使用私人字符串,但我认为你必须重做这个。到目前为止,我看到了这个序列:

1. Navigate to Original page.
2. Presented with login page.
3. Fill in the username / password and then submit.
4. Navigate to Original page.
5. Step 3's process fires a DocumentCompleted event - URL still "login" (loop).
6. Step 4's process fires a DocumentCompleted.

步骤的时间安排无法保证,因此第4步可能会提示您再次登录。

我总是首先进入登录页面然后登录来解决这个问题。一旦触发了DocumentCompleted,我就会转到原始页面。我使用私有变量跟踪所有这些。最简单的是“private int _step = 1;”然后根据您所处的步骤决定在DocumentCompleted中执行的操作。