一个窗体Form1,有一个webBrowser1控件,另一个窗体为主窗体Form2,有一个工具栏,现在通过工具栏上的toolStripButton来使用webBrowser1控件,应该怎样做,调试的时候提示当前上下文不存在webBrowser1,我是新手一个,请大家支教。谢谢webBrowserwinForm

解决方案 »

  1.   

    把WEBBROWSER设为PUBLIC权限,主窗体NEW一个FORM1,就可以传值过去了
      

  2.   

    这个方法我已经试过了,在主窗体那里 Form1 f=new Form1();可是还是出错了呀
      

  3.   

    参考下面的博文来使用WebBrowser控件:
    http://www.cnblogs.com/zhili/archive/2012/08/24/WebBrowser.html
      

  4.   

    是这样的,我想有winForm来调用谷歌API 的javascript来做个小程序,有一个窗体叫做mapForm,是用来加载谷歌地图的,一个窗体是MainForm,是一个主窗体,上面有菜单栏工具栏,现在我是想在主窗体的工具栏添加一个天气按钮,可以在地图上显示天气,因为webBrowser1(在加载地图的mapForm)不在主窗体上,但是我那个工具栏要添加的按钮事件处理代码里面需要用到webBrowser1这个控件,调试的时候提示“当前上下文不存在webBrowser1”按照一楼的说法做,调试是没有错误,一点击工具栏那个按钮就提示说:未将对象引用设置到对象的实例。百度找不大了,下面是我的代码,可以帮帮忙吗?
     private void 天气查询toolStripButton_Click(object sender, EventArgs e)
            {
               // mapForm f = new mapForm();
                
                if (天气查询toolStripButton.Text == "开启天气查询")
                {
                    天气查询toolStripButton.Text = "关闭天气查询";
                    mshtml.IHTMLDocument2 currentDoc = (mshtml.IHTMLDocument2)webBrowser1.Document.DomDocument;                mshtml.IHTMLWindow2 win = (mshtml.IHTMLWindow2)currentDoc.parentWindow;                win.execScript("weather()", "javascript");
                }
                else
                {
                    mshtml.IHTMLDocument2 currentDoc = (mshtml.IHTMLDocument2)webBrowser1.Document.DomDocument;                mshtml.IHTMLWindow2 win = (mshtml.IHTMLWindow2)currentDoc.parentWindow;                win.execScript("clearOverlays()", "javascript");
                }         }
      

  5.   

    你这样写当然不行了
    1.你在主窗口先定义一个全局变量mapForm f = new mapForm();
    2.在mapForm定义一个public string click
    {
        set
        {
                    mshtml.IHTMLDocument2 currentDoc = (mshtml.IHTMLDocument2)webBrowser1.Document.DomDocument;                mshtml.IHTMLWindow2 win = (mshtml.IHTMLWindow2)currentDoc.parentWindow;                win.execScript("weather()", "javascript");
                }
        }
    }
    3. private void 天气查询toolStripButton_Click(object sender, EventArgs e)
            {
               // mapForm f = new mapForm();
                
                if (天气查询toolStripButton.Text == "开启天气查询")
                {
                    天气查询toolStripButton.Text = "关闭天气查询";
                    f.click="0";
                }
            }
      

  6.   


    前段时间出差了,现在才回来弄,刚刚按照你的说法还是那个“未将对象引用设置到对象实例这个问题”我那个mapForm和主窗体是用那个Dockpanel这个第三方控件实现的,它可以实现多文档,不过还是谢谢你的耐心帮助哈。