저자 : tuenhai.com MSN : King#tuenhai.com
저작권 설명 : 마음대로 재 인쇄 할 수 있습니다. 재판을 할 때는 기사의 원래 소스, 저자 정보 및이 진술을 하이퍼 링크 형태로 표시하십시오.
http://www.tuenhai.com/
개발 도구 : Microsoft Visual Studio .NET 2003
운영 체제 : Windows XP
원본 텍스트 : http://www.devx.com/vb2themax/tip/18798
다른 컨트롤과 마찬가지로 Webbrowser 컨트롤을 사용하여 Windows 양식 응용 프로그램을 구축 할 수 있습니다. Toolbox에서 Windows Form Control Group을 선택하고 "Microsoft Web Browser"를 클릭하고 백그라운드에서 Aximp.exe 도구를 사용하여 "axwebrowser"라는 이름으로 ActiveX 컨트롤을 만듭니다. VB.NET에서 COM 구성 요소는 직접 사용할 수 없습니다. com은 모두 관리되지 않는 코드입니다. VB.NET에서 이러한 구성 요소를 사용하는 경우 관리되지 않는 코드에서 관리 코드로 변환을 완료해야합니다.
일반적으로 호출 메소드, 속성 지정, 이벤트 캐치 등과 같은 원래 웹 브라우저 컨트롤을 사용할 수 있습니다.
어떤 것들은 그렇게 간단하지 않습니다. 사용자가 페이지 요소 (예 : 배경)를 클릭 할 때와 같은 페이지 이벤트를 캡처하려고합니다. 이벤트가 잡히지 않으면 DHTML 레벨은 가장 높은 레벨의 문서 개체가 될 때까지 업그레이드되어야합니다. 이런 식으로, 우리는 모든 이벤트를 캡처 할 수 있습니다. vb6에서는 Weevents 키워드를 사용하여 mshtml.htmldocument에 webbrowser.document를 간단히 지정할 수 있습니다.
vb.net에서는이 간단한 방법이 더 이상 작동하지 않습니다. ActiveX 컨트롤은 두 개의 인터페이스를 생성하므로 동일한 메소드 이름이 두 인터페이스에 사용되므로 런타임 오류가 발생합니다. 따라서 문서 개체에서 사용되는 인터페이스를 지정하고 이벤트 처리 핸들을 만들어야합니다 (Hehe, Tuenhai는 잘 번역됩니다).
샘플 코드는 다음과 같습니다.
'중요 :이 코드는 당신이
'Microsoft HTML 객체 라이브러리 유형 라이브러리
private sub form1_load (byval sender as system.object, _
byval e as system.eventargs)는 mybase.load를 처리합니다
axwebrowser1.navigate ( "http : //localhost/default.asp")
종료 서브
개인 sub axwebrowser1_navigatecemplete2 (객체로서의 발신자, _
byval e as as axshdocvw.dwebbrowserevents2_navigatecemplete2event) hondles _
axwebrowser1.navigatecomplete2
'이 이벤트가 문서에 대한 유효한 참조를 가져 오려면 기다려야합니다.
' 재산
dim doc as mshtml.htmldocument = directcast (axwebbrowser1.document, _
mshtml.htmldocument)
'관심있는 이벤트를 정의하는 인터페이스로 캐스트
dim 문서는 mshtml.htmldocumentevents2_event = directcast (doc, _
mshtml.htmldocumentevents2_event)
'OnClick 이벤트에 대한 처리기를 정의하십시오
addhandler 문서
종료 서브
'이 이벤트의 서명은 평소와 다릅니다.
'부울을 반환 할 것으로 예상됩니다.
'이벤트와 함께 (예 : 클릭이 켜져 있으면 다른 페이지로 점프합니다.
'하이퍼 링크)이 취소됩니다.
개인 기능 onclickproc (byval obj as as mshtml.ihtmlleventobj) 부울
'페이지의 객체가 클릭되었습니다. 자세한 내용은
'OBJ의 속성을 쿼리 하여이 객체의 유형 및 위치
'...
엔드 기능
번역가 노트 :
이것은 Tuenhai의 첫 번째 번역입니다.
저의 개인적인 경험은 최근 해외 프로그램 디자인 웹 사이트를 여행함으로써 많은 혜택을 얻었습니다. 또한 서예 학습의 "최선의 학습"을 생각했습니다. Shareware로가는 방법은 국제적으로가는 것입니다. 소프트웨어 디자인을 학습 할 때 이것이 똑같지 않습니까? 국제 학습 자원은 국내 학습 자원과 어떻게 비교됩니까?
영어는 결코 장애물이 아닙니다. Tuenhai는 그의 영어가 당신보다 낫다고 믿지 않습니다. 중학교의 기본 사항과 Kingsoft Powerwords로 충분합니다.