以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- [求助] 窗体afterload事件 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=125150) |
-- 作者:goodhawk -- 发布时间:2018/9/20 21:59:00 -- [求助] 窗体afterload事件 参照这个帖子: http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=120985 但是我想把事件发生在 窗体加载的时候, 也就是打开这个窗体 afterload 这个事件里头: 如下代码, 如果是在窗体上加载一个按钮是可以执行的, 但是如果写在 afterload 里头没有反应。 Dim web As System.Windows.Forms.WebBrowser = e.Form.controls("webbrowser1").basecontrol Dim vw As WinForm.WebBrowser = e.Form.Controls("WebBrowser1") web.ScriptErrorsSuppressed = True vw.Address = "https://XXXXX.com" Dim vu = web.Document.GetElementById("mobile") Dim vp = web.Document.GetElementById("password") vu.SetAttribute("value", "test") vp.SetAttribute("value", "test") web.Document.InvokeScript("login") |
-- 作者:有点甜 -- 发布时间:2018/9/20 22:02:00 -- Dim web As System.Windows.Forms.WebBrowser = e.Form.controls("webbrowser1").basecontrol Do Until web.ReadyState = 4 Dim vu = web.Document.GetElementById("mobile") |
-- 作者:goodhawk -- 发布时间:2018/9/21 11:27:00 -- @谢谢有点甜的解答, 按照你这边的做法, 做了一下并不能实现跳转, 主要是 你红色的部分 和 红色以下的部分, 基本上是同时执行的。 我自己稍微研究了一下, 有2种方式可以实现: 方法一: 把你的那串红色的字改为一个弹窗 messagebox.show 方法二: 启用timertick, 1) aferload : Dim web As System.Windows.Forms.WebBrowser = e.Form.controls("webbrowser1").basecontrol web.ScriptErrorsSuppressed = True Dim vw As WinForm.WebBrowser = e.Form.Controls("WebBrowser1") vw.Address = "https://XXXX" e.Form.TimerEnabled = True P_IS_LOGIN_BMC = False 2) timertick: Dim web As System.Windows.Forms.WebBrowser = e.Form.controls("webbrowser1").basecontrol web.ScriptErrorsSuppressed = True If web.ReadyState.Complete And P_IS_LOGIN_BMC = False Then
Dim vu = web.Document.GetElementById("mobile")
Dim vp = web.Document.GetElementById("password")
vu.SetAttribute("value", "test")
vp.SetAttribute("value", "test")
web.Document.InvokeScript("login") e.Form.TimerEnabled = False P_IS_LOGIN_BMC = True
End If |
-- 作者:有点甜 -- 发布时间:2018/9/21 11:49:00 -- 加上条件,比如(具体问题做个例子上来测试)
Do Until web.ReadyState = 4 AndAlso web.Document.GetElementById("mobile") isnot Nothing
|
-- 作者:goodhawk -- 发布时间:2018/9/21 11:55:00 -- 太赞了, 非常好, 你的这个使代码优雅许多, 很赞 |