winform與webform互相通訊實(shí)例_第1頁
winform與webform互相通訊實(shí)例_第2頁
winform與webform互相通訊實(shí)例_第3頁
winform與webform互相通訊實(shí)例_第4頁
winform與webform互相通訊實(shí)例_第5頁
已閱讀5頁,還剩6頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、.NET中winform 與webform互相通訊實(shí)例,CS調(diào) 用BS頁面的JS函數(shù)時(shí)間:2010-05-1521:38 來源:作者:點(diǎn)擊:71次大家都知道.NET可以開發(fā)winform與webform頁面,有時(shí)候在開發(fā)項(xiàng)目過程中要結(jié)合 BS+C/樣 來應(yīng)用,那么本站做一個(gè)實(shí)例來測試 winform與webform互相通訊的實(shí)例,下面先看下效果:winform 調(diào)用bs頁面的js函數(shù)效果圖webform頁面發(fā)送信息到winform效果圖好了,看完大家都知道.NET可以開發(fā)winform與webform頁面,有時(shí)候在開發(fā)項(xiàng)目過程中要結(jié)合 BS+C/樣 來應(yīng)用,那么本站做一個(gè)實(shí)例來測試 winfo

2、rm與webform互相通訊的實(shí)例,下面先看下效果:Iwinform調(diào)用bs頁面的js函數(shù)效果圖webform頁面發(fā)送信息到winform效果圖好了,看完上面的效果,下面我們看下如何實(shí)現(xiàn)吧。第一、打開VS2008創(chuàng)建winform項(xiàng)目,之后在MainForm拖入瀏覽器控件,并命令這個(gè)瀏覽器控件 名為:WebContainer下面是全部CS端代碼:/*II * 名稱:CS與BS互相通訊 |.-1* 作者:cc. A,/:”一* 官方:* /JusingSystem;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;us

3、ingSystem.Linq;usingSystem.Text;usingnamespaceTestJSWinpublicpartialclassMainForm:FormpublicMainForm()InitializeComponent();=this; /這句很關(guān)鍵,主要和頁面的JS互相操作UriuriSale=newSystem.Uri();/瀏覽器控件默認(rèn)打開頁面WebContainer.Url=uriSale;/菜單點(diǎn)擊事件/privatevoidjsEventToolStripMenuItem_Click(objectsender,EventArgse) I - 1WebCon

4、tainer.Navigate(javascript:fn_test();void(0););/BS調(diào)用方法/publicvoidJavascriptCall(stringstrShow)MessageBox.Show(strShow);好,做完winform ,下面是頁面的做法。第2、webform的頁面,源碼很簡單,你可以直接復(fù)制源代碼到本地測試就可以了。下面是 HTML 頁面源代碼:CodeHTMLPUBLIC-/W3CDTDHTML4.0TransitionalEN*I I (i? I;:1, / j ;Testjsevent 嗯!到現(xiàn)在為此,所有操作都可以了,非常簡單,如果你有興趣來

5、按上面的代碼來測試下在.net中利用webbrowser控件實(shí)現(xiàn)WinForm 與WebForm 交互在.net中的WebBrowser 控件可以讓你裝載 WindowsForm應(yīng)用程序中的 Web網(wǎng)頁和其它采用瀏覽器的文件。可以使用 webbrowser 控件將現(xiàn)有的web框架控制項(xiàng)加入至 WindowsForm 客戶端應(yīng)用程序。還是直接看代碼吧。WebBrowser 控制項(xiàng)提供的屬性、方法和事件,可用來實(shí)現(xiàn) InternetExplorer的控制項(xiàng)/將指定位置處的文件載入至 WebBrowserwebBrowser1.GoBack();上一頁:I1- :1, / /;webBrowser1

6、.GoForward();/ 下一頁webBrowser1.Refresh();/ 刷新webBrowser1.GoHome();/ 主頁這里提供了 WebBrowser 常用的方法,上面的代碼是將我們園子的主頁載入到 WebBrowser控件中。如果我們想要在應(yīng)用程式中產(chǎn)生自 己的網(wǎng)頁內(nèi)容,可以設(shè)定 DocumentText 屬性。也可以通過 Document屬性來處理目前的網(wǎng)頁 內(nèi)容。如下代碼是使用 DocumentText 屬性,顯示網(wǎng)頁內(nèi)容。并用 Document屬性來處理所顯 示的網(wǎng)頁。. A,/【:一1privatevoidbtnDocumentText_Click(objects

7、ender,EventArgse)2 3 stringszHtml= 4 56DocumentText78 910 Pleaseenteryourname: 11 12 SendinputtomethodofFormclass13 14 15;17 webBrowser1.DocumentText=szHtml;181920 / I J j I21 privatevoidwebBrowser1_Navigating(objectsender,WebBrowserNavigatingEv entArgse)2223document= if(document!=null&document.AllN

8、ame!=null&String.IsNullOrEmpty(document.AllName.GetAttribute(value)26 27 e.Cancel=true;.I28 mustenteryournamebeforeyoucannavigateto+ 3031既然我們可以通過DocumentText生成自己的網(wǎng)頁,那么能不能象使用IE那樣操作這個(gè)網(wǎng)頁呢?,答案是肯定的,完全可以像操作Web程序那樣操作 WebBrowser控制項(xiàng)。比如我們可以加入腳本,CSS。當(dāng)然,如果你熟悉HTML物件對象模型(DOM),也可以透過Document屬性 來處理目前的Web網(wǎng)頁內(nèi)容。下面的例子加入

9、了 JavaScript腳本來控制網(wǎng)頁。如果要在Winfrom 程序中寫大量的Javascriot代碼,而且這些代碼最終要轉(zhuǎn)換成 String型載入到 Webbrowser 那 將是很痛苦的事情,不過沒有關(guān)系,我們可以創(chuàng)建一個(gè) js文件,放入資源中,用的時(shí)候只需從資 源中載入即可。這里我創(chuàng)建一個(gè)名為 ClientScript.js 的文件。12functionClickEvent(name)4 alert(Hello:+name);567functionKeyDown()89 if(event.keyCode=116)10 11 event.keyCode=0;12 event.returnV

10、alue=false;13 1415 returnfalse;16stringszClientScript=stringszWebBrowserText=+ |+szClientScript+Pleaseenteryourname:+ ClickHere+;webBrowser1.DocumentText=szWebBrowserText;WebBrowser 是下的控制項(xiàng),也就是意味著它是用在WimForm 程序下,那么 WebWrower 所載入的Web頁面如何實(shí)現(xiàn)在 WinForm 程序下處理呢。例如上例中的 ClickHere。這里的 Click 事件是通過腳本處理的,如何讓這個(gè) Cl

11、ick事件在Winform 中處理呢?這里要做一些修改。若要從指令碼存 取用戶端應(yīng)用程式,需要設(shè)定 ObjectForScripting 屬性。指令碼可以將您指定的物件當(dāng)做 window.external 物件來存取。使用ObjectForScripting 屬性,可啟用 WebBrowser 控制項(xiàng)所裝載之 Web網(wǎng)頁與包含 WebBrowser 控制項(xiàng)之應(yīng)用程式間的通訊。這個(gè)屬性可讓您整合動態(tài)超文字標(biāo)記語言(DHTML)程式碼與用戶端應(yīng)用程式程式碼。指定給這個(gè)屬性的物件可讓 Web網(wǎng)頁指令碼做為window.external 物件,這個(gè)物件是為了存取 主應(yīng)用程式而提供的內(nèi)建DOM物件。、,

12、J J/1 t j8 I1 1-,I I1-/ J s* 1privatevoidbtnScriptEvent_Click(objectsender,EventArgse)2 34 /ThisisthehandlerforloadingthescriptintotheWebBrowsercontrolandallowin gustointeractI5 /betweenthescriptintheBrowsercontrolandthisformclass8 /SettheObjectForScriptingpropertyoftheWebBrowsercontroltopointtothis

13、formclass9 /Thiswillallowustointeractwithmethodsinthisformclassviathewindow.externalpropertyJ10 webBrowser1.ObjectForScripting=this;1112 stringszWebBrowserText=+13 +14 +15+16 ”+ 1718 Pleaseenteryourname:+19+20fontHere+21;; I/2223.+ i -.J24 webBrowser1.DocumentText=szWebBrowserText;, -I ,4 J I/ / I I

14、1 I I r- :1 / j ;25 26 publicvoidClickEvent(stringuserName)27 28 SimplyechooutthenamethattheusertypedintheinputboxoftheHTMLpage29 if=true)Q 八L.I30 MessageBox.Show(Hello+userName,ManagedWebBrowserSample,MessageBoxButtons.OK,MessageBoxIcon.Information,MessageBoxDefaultButton.Button1,MessageBoxOptions.

15、RightAlign|MessageBoxOptions.RtlReading);31 else32 MessageBox.Show(Hello+userName,ManagedWebBrowserSample,MessageBoxButtons.OK,MessageBoxIcon.Information,MessageBoxDefaultButton.But ton1); 3334這里的ObjectForScripting 屬性設(shè)置為this。注意:在From1類的開頭加入了這么一句 ComVisible(true) , true ,指出 Managed 型別對于 COM 為可見的。ComV

16、isible(true)publicpartialclassForm1:結(jié)束語:本文簡單的介紹了 WebBrowser 的用法,實(shí)現(xiàn)了 WinForm 程序下與 Web頁面的交互使用關(guān)于在WINFORM如果向一個(gè)JSP文件提交數(shù)據(jù),緊急求救中using System;using System.Drawing;using System.Collections;using System.ComponentModel; usingnamespace test /Form3的摘要說明。/public class Form3 privatetextBox1;privatetextBox2;private

17、button1;private AxSHDocVw.AxWebBrowser axWebBrowser1; /必需的設(shè)計(jì)器變量。/private components = null;, Apublic Form3() / Windows窗體設(shè)計(jì)器支持所必需的 /InitializeComponent();/ TODO:在 InitializeComponent調(diào)用后添加任何構(gòu)造函數(shù)代碼/清理所有正在使用的資源。/protected override void Dispose( bool disposing ) if( disposing ) if(components != null)comp

18、onents.Dispose();); base.Dispose( disposing #region Windows窗體設(shè)計(jì)器生成的代碼/設(shè)計(jì)器支持所需的方法-不要使用代碼編輯器修改/此方法的內(nèi)容。/private void InitializeComponent() resources= newthis.textBox1= newthis.textBox2= newthis.button1= newthis.axWebBrowser1 = new AxSHDocVw.AxWebBrowser(); this.SuspendLayout();/ textBox1/=new8);=textBox1;=0;=textBoxl;/1/textBox21/=new8);=textBox2=*;=1;= textBox2;/button1/=new8);=button1;=2;=buttonl;+= newSystem.EventHandler(this.button1_Click);/ axWebBrowser1new 16);= 3;/= true; = new 40);= axWebBrowser1.OcxState);/ Form3/this.AutoScaleBaseSize = new 14);this.ClientSize = new 69);this.Nam

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論