상세 컨텐츠

본문 제목

[Windows Forms Client 응용 프로그램과 웹페이지 스크립팅 코드 간의 양방향 통신]

C#

by 탑~! 2010. 12. 31. 10:26

본문

WebBrowser 컨트롤을 사용하면 ObjectForScripting 및 Document 속성을 통해 클라이언트 응용프로그램 코드와

웹페이지 스크립팅 코드 간의 양뱡향 통신을 구현할 수 있다.

 

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

using System.Security.Permissions;

 

namespace WindowsFormsApplication8

{

[PermissionSet(SecurityAction.Demand, Name="FullTrust")]

[System.Runtime.InteropServices.ComVisible(true)]

public partial class Form1 : Form

{

public Form1()

{

InitializeComponent();

}

 

private void Form1_Load(object sender, EventArgs e)

{

webBrowser1.AllowWebBrowserDrop = false;            // webbrowser 컨트롤에 끌어 놓은 파일이 열리지 않도록 한다.

webBrowser1.IsWebBrowserContextMenuEnabled = false;    // webbrowser 컨트롤을 마우스 오른쪽 단추로 클릭할 때 바로가기 메뉴가 표시되지 않도록 한다.

webBrowser1.WebBrowserShortcutsEnabled = false;        // webbrowser 컨트롤이 바로 가기에 응답하지 않도록 한다.

webBrowser1.ObjectForScripting = this;            // 스크립팅 개체에 대한 폼 클래스 자체를 사용한다.

                                        // COM(Component Object Model)은 스크립팅 개체에 액세스 할 수 있어야 한다.

                                        // COM 에서 폼을 볼 수 있도록 하려면 ComVisible 속성을 추가한다.

//webBrowser1.ScriptErrorsSuppressed = true;        // webbrowser 컨트롤에서 스크립트 코드 문제에 대한 오류 메시지를 표시하지 않도록 한다.

 

webBrowser1.DocumentText = "<html><head><script>function test(message) {alert(message + '-html');} " +

" </script></head><body><br> Windows Forms Code From Html Script Code <br><br> <button " +

" onclick=\"window.external.Test('call windows forms code from script code')\">" +

" call windows form client code from script code(HTML)</button>" +

" </body></html>";

}

 

 

public void Test(String message)

{

MessageBox.Show(message, "client code(C#)");

}

 

private void button1_Click(object sender, EventArgs e)

{

webBrowser1.Document.InvokeScript("test", new string[] {"called html script code from window forms code(C#) "});

}

}

}

 

 

[그림1] – Windows Forms 코드에서 스크립트 코드의 메소드 호출

 

[그림2] – 스크립트 코드에서 Windows Forms 코드의 메소드 호출

'C#' 카테고리의 다른 글

[단일 프로세스 실행]  (0) 2010.12.31
[Windows Forms 창 흔들기 효과]  (0) 2010.12.31
TextBox 스크롤 하단으로 내리기  (0) 2010.12.20
컨트롤의 속성 그룹화 하기  (0) 2010.12.20
밀리세컨 시간동안 대기  (0) 2010.12.17

관련글 더보기