C# WinForm 浏览器问题

苍穹无痕 2015-09-11 04:01:43
各位好,我想在一个webbrowse 里面嵌装载一个网页,并且点击该页面的按钮,弹出其他的新的页面,需要把新弹出的页面重新装载进我的webbrowse控件里面,如下图所示:

在网上查了很多资料,说在NewWindow事件里面添加
“ webBrowser1.Url = new Uri(((WebBrowser)sender).StatusText);
e.Cancel = true;”
这样的方法,就可以把新弹出的窗体在原webbrowse里面显示,但是StatusText的值要不为空,要不就是值为类似“CommonPage.aspx?FormID=%u7f3a%u9677%u7ba1%u7406&MenuID=%u7f3a%u9677%u7ba1%u7406&bh=010201”,这个是为当前页面的部分URL,而不是新弹出的URL,新弹出的URL应该为“http://192.168.51.106:8009/inc/CommonPageSub3.aspx?Formid=%c8%b1%cf%dd%e4%af%c0%c0&T1=201509-00003”,我希望可以得到一个正确的URL的值,想问问各位大神有没有什么方法可以解决这个问题。
...全文
158 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
苍穹无痕 2015-09-14
  • 打赏
  • 举报
回复
不是弹不弹出来的问题,是statusText的值为空,已经解决了,是要在BeforeWindow里面进行处理,而不是在NewWindow里面进行处理。
本拉灯 2015-09-11
  • 打赏
  • 举报
回复
用newwindows事件有时还是会弹出来的,用 种分析实现,使用装载回来的网页上面所有的控件的target属性修改还_self. 这个是可行的,我就搞过淘宝的页面,把让他不以新窗口弹出。。 private void SetAllWebItemSelf(HtmlElementCollection items) { try { foreach (HtmlElement item in items) { if (item.TagName.ToLower().Equals("iframe", StringComparison.OrdinalIgnoreCase)==false) { try { item.SetAttribute("target", "_self"); } catch { } } else { try { HtmlElementCollection fitems = item.Document.Window.Frames[item.Name].Document.All; this.SetAllWebItemSelf(fitems); } catch { } } } } catch { } }
苍穹无痕 2015-09-11
  • 打赏
  • 举报
回复
开始操作的界面如下: 跟踪是的图片如下: 要不结果返回空值,要不结果就是返回“CommonPage.aspx?FormID=%u7f3a%u9677%u7ba1%u7406&MenuID=%u7f3a%u9677%u7ba1%u7406&bh=010201” 如果把e.Cancel=true去掉,虽然没有取到正确的值,但是还是能弹出子窗体,如下图所示:
苍穹无痕 2015-09-11
  • 打赏
  • 举报
回复
这种方法不行,试过,新的窗体根本不弹出来
bdmh 2015-09-11
  • 打赏
  • 举报
回复

110,571

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧