专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > WinForm

winForm中怎么实现Webbrowser控件加载html页面

发布时间:2011-06-23 13:49:49 文章来源:www.iduyao.cn 采编人员:星星草
winForm中如何实现Webbrowser控件加载html页面?

Webbrowser控件加载html页面非常简单。首先拖一个webbrowser控件到窗体中,然后通过代码:webBrowser1.Navigate("cityApi.html");加载网页资源。

如果要实现winform与网页进行交互需要用到事件webBrowser1_DocumentCompleted(即html文档加载完成后进行交互):

winform后台可以通过语句:webBrowser1.Document.InvokeScript("loadInfo", new object[] {参数1,...,参数m});调用javascript函数loadInfo,实现将数据传到网页中;
javascript函数可以通过语句:window.external.ShowMsg(str);调用winform后台函数ShowMsg(string str);

下面的代码展示一个小例子:
【FrmCityApi.cs】
      private void FrmCityApi_Load(object sender, EventArgs e)
       {
           webBrowser1.DocumentCompleted += new System.Windows.Forms.WebBrowserDocumentCompletedEventHandler(this.webBrowser1_DocumentCompleted);
           //初始化webbrowser,保证js和C#的通信
           webBrowser1.ObjectForScripting = this;
           //加载webbrowser网页资源 
           webBrowser1.Navigate("cityApi.html");
       }
       /// <summary>
       /// webbrowser文档加载完毕之后加载空气指数信息
       /// </summary>
       /// <param name="sender"></param>
       /// <param name="e"></param>
       private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
       {
           try
           {
               if (webBrowser1.Document != null)
               { 
                   //加载空气指数信息
                   webBrowser1.Document.InvokeScript("loadInfo", new object[] { city_name, api_date.ToString(), api.ToString(), sitenum.ToString() }); 
               }
           }
           catch (Exception)
           {
               DialogHelper.DlgWarn(this, "加载空气指数信息错误");
           }
       }

【cityApi.html】
<script type="text/javascript"> 
    /*  function Run(str) {
          window.external.ShowMsg(str);
      }*/
    function loadInfo(cityName, apiDate, apidata, num) {
        document.getElementById("city_name").innerHTML = cityName;
        document.getElementById("api_time").innerHTML = "数据更新时间:" + apiDate;
        document.getElementById("city_api_data").innerHTML = apidata;
        document.getElementById("sites_count").innerHTML = num + "个监测点";
    }
</script>

结束!!!
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: