2011. 9. 30. 16:36

웹브라우저를 윈폼에서 띄울때 많이 사용하는 것이 WebBrowser컨트롤입니다.


우리의 웹브라우저 컨트롤 짜응~

이거 하나만 뚝딱뚝딱해도 허접한 브라우저 하나 많들수 있습니다 ㅡ.-;;

여튼 WebBrowser에 들어가있는 많은 것들을 프로그램에서 컨트롤할수 있으므로 웹과 조화를 이루어야 할때(?)도 사용하게 됩니다

0.페이지 출력

일단 테스트를 하려면 WebBrowser에 빈패이지라도 출력되어 있어야 합니다.
간단하게 로컬 test.html 하나 만들어서 하시면 되겠습니다.

WebBrowser에 페이지를 띄우려면 Navigate를 이용하시면 되겠습니다.

//WebBrowser webHide = new WebBrowser();
//테스트페이지 오픈
webHide.Navigate(new Uri("http://localhost/test.html"));
1.원하는 컨트롤 찾기

WebBrowser에 출력된 화면에서 원하는 컨트롤 찾아야 데이터를 가져오던 말던 하지 않겠습니까?
단순한 브라우저를 WebBrowser로 구현할게 아니면 말이죠 ㅎㅎㅎ

ASP.Net에서도 그렇지만 html페이지에 접근하려면 Document에 접근해야 합니다.


//HTML
//
webHide.Document.Body.All["ID"];


Body를 탐색하겠다는 것으로 해더를 탐색하실거면 해더로 검색하시면 되겠습니다.


2. 컨트롤에 값넣고 가져오기

이미 눈치채신 분도 있겠지만 점만 찍으면 됩니다 ㅡ.-;;

//HTML
//
webHide.Document.Body.All["ID"].SetAttribute("value", "값이~ 들어간다!");


이렇게하면 텍스트블록에 데이터가 들어가는 것을 확할수 있습니다.
당연하게도 가져올때는 GetAttribute입니다 ㅎㅎㅎ

//HTML
//
string sGetData = webHide.Document.Body.All["ID"].GetAttribute("value");


차~암 쉽조잉? 
3.특정 버튼을 찾아 클릭 이벤트 발생시키기

특정ID의 버튼을 찾아 클릭이벤트를 발생 시켜 보겠습니다.

//WebBrowser webHide = new WebBrowser();
//
//버튼에 연결된 함수는 폼에 연결되어있어 자바스크립트를 직접 호출할수 없을때 사용합니다.
webHide.Document.Body.All["submitButton"].InvokeMember("click");


이렇게 하면 해당 버튼을 클릭한 효과를 줄수 있습니다.