【发布时间】:2019-08-13 11:22:29
【问题描述】:
AddHandler ie.DocumentCompleted 给出 DocumentCompleted' 不是 “对象”事件
如果我输入 ie.DocumentComplete 我得到 p>
“WebBrowserDocumentCompletedEventHandler”类型的值不能 转换为“DWebBrowserEvents2_DocumentCompleteEventHandler”
我遵循了网络上的几个示例并不断收到这些错误。好像它不是代码问题,而是我缺少参考。
Public Class Form1
Dim myHTMLDoc As HtmlDocument
Dim myhtmlelement As HtmlElementCollection
Dim ie As WebBrowser
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim ieurl As String
ieurl = "http://companyurl.com"
AddHandler ie.DocumentComplete, AddressOf DocumentCompleteIE
ie.Navigate(ieurl)
ie.Visible = True
End Sub
Private Sub DocumentCompleteIE(ByVal sender As Object, ByVal e As WebBrowserDocumentCompletedEventArgs)
MessageBox.Show("completed - " & ie.LocationURL)
ie.Document.GetElementById("Login").SetAttribute("value", "x123456")
ie.Document.GetElementById("Pwd").SetAttribute("value", "123456")
ie.Document.GetElementById("Btn").InvokeMember("click")
End Sub
End Class
如果我开始输入 ie.Do(在 addhandler 之后),我会看到 DocumentComplete 作为选项,并且 不是 DocumentCompleted,我觉得这很奇怪,因为我在网上到处看到的代码都使用 DocumentCompleted!
【问题讨论】:
-
DocumentCompleted与 WebBrowser 控件有关。您正在直接使用 InternetExplorer ActiveX。请参阅其文档。删除New WebBrowserDocumentCompletedEventHandler。 -
什么表示我直接使用 ActiveX?进口 SHDocVw?我看到我可能应该直接使用 WebBrowser 控件,因为用户不需要 IE 页面,只需要一些数据!
-
不确定你的意思是删除 New WebBrowserDocumentCompletedEventHandler(AddressOf DocumentCompleteIE)!
-
1) 这意味着您使用的是InternetExplorer object,而不是其托管的 WebBrowser 控件包装器。您正在混合属于两个不同对象的方法。您发布的代码只是尝试自动登录、填写和激活 WebForm。为此使用 WebBrowser 控件:简单得多,包袱少,结果相同。 2)
AddHandler [WebBrowser].DocumentCompleted, AddressOf DocumentCompleteIE -
ie = New WebBrowser。这:Dim ie As WebBrowser定义了一个类型,它不创建实例。
标签: html vb.net internet-explorer