WebBrowser中打开新页面

要求新打开的网页受控于WebBrowser 解决办法很简单,分两情况,一是在当前WebBrowser中打开新页面,二是在新Form中的WebBrowser中打开新页面:
      

复制代码
         public Form1()
        {
            InitializeComponent();
            this.webBrowser1.AllowWebBrowserDrop = false;  //可在属性里设置,很重要

            //在新Form中的WebBrowser中打开
            (this.webBrowser1.ActiveXInstance as SHDocVw.WebBrowser).NewWindow2 += new SHDocVw.DWebBrowserEvents2_NewWindow2EventHandler(Form1_NewWindow2);

            //在主WebBrowser中打开
            //(this.webBrowser1.ActiveXInstance as SHDocVw.WebBrowser).NewWindow3 += new SHDocVw.DWebBrowserEvents2_NewWindow3EventHandler(Form1_NewWindow3);
        }

        void Form1_NewWindow2(ref object ppDisp, ref bool Cancel)
    {
      Form5 frm = new Form5(); //事先建好一个带WebBrowser的窗体
      ppDisp = frm.webBrowser1.ActiveXInstance;
      frm.Show();
    }

        void Form1_NewWindow3(ref object ppDisp, ref bool Cancel, uint dwFlags, string bstrUrlContext, string bstrUrl)
        {
            Cancel = true;
            this.webBrowser1.Navigate(bstrUrl);
        }
复制代码


然后如果在新窗口打开新页面,主页面和新页面在同一会话中,可互相影响了.

另:SHDocVw.dll 在 C:/WINDOWS/SYSTEM32下,要引用到项目中来,这个是基础,不应该有疑问吧.
————————————————
版权声明:本文为CSDN博主「niechunyang」的原创文章。
原文链接:https://blog.csdn.net/niechunyang/article/details/5147665

posted @   树欲静·而风不止  阅读(1706)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示