Webbrowser控件加载html页面很是简单。首先拖一个webbrowser控件到窗体中,而后经过代码:webBrowser1.Navigate("cityApi.html");加载网页资源。javascript
若是要实现winform与网页进行交互须要用到事件webBrowser1_DocumentCompleted(即html文档加载完成后进行交互):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>结束!!!