著者: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フォームアプリケーションを構築できます。ツールボックスからWindowsフォームコントロールグループを選択し、[Microsoft Web Browser]をクリックし、背景のAximp.exeツールを使用して、「Axweberowser」という名前のActiveXコントロールを作成します。 VB.NETでは、COMコンポーネントを直接使用できません。 comはすべて管理されていないコードです。これらのコンポーネントをVB.NETで使用する場合は、管理されていないコードから管理されたコードへの変換を完了する必要があります。
一般に、呼び出しメソッド、プロパティの指定、キャッチイベントなど、元のWebbrowserコントロールを使用できます。
それほど単純ではないものもあります。ユーザーがページ要素(背景など)をクリックすると、ページ要素のオンクリックイベントをトリガーするなど、ページイベントをキャプチャします。イベントがキャッチされていない場合、DHTMLレベルをドキュメントオブジェクトの最高レベルまでアップグレードする必要があります。これにより、あらゆるイベントをキャプチャできます。 VB6では、withEventsキーワードを使用して、mshtml.htmldocumentのwebbrowser.documentを単純に指定できます。
VB.NETでは、この単純な方法は機能しなくなりました。 ActiveXコントロールは2つのインターフェイスを作成するため、両方のインターフェイスで同じメソッド名が使用されるため、ランタイムエラーが発生します。したがって、ドキュメントオブジェクトで使用されるインターフェイスを指定し、イベント処理ハンドルを作成する必要があります(Hehe、Tuenhaiはよく翻訳されています)。
これがサンプルコードです:
'重要:このコードは、
'Microsoft HTMLオブジェクトライブラリタイプライブラリ
private sub form1_load(byval sender as System.Object、_
system.eventargsとしてbyval e)mybase.loadを処理します
axwebrowser1.navigate( "http://localhost/default.asp")
End Sub
private sub axwebrowser1_navigatecomplete2(byval sender as object、_
byval e as axshdocvw.dwebbrowserevents2_navigatecomplete2event)ハンドル_
axweberowser1.navigatecomplete2
「このイベントがドキュメントへの有効な参照を取得するのを待つ必要があります
' 財産
mshtml.htmldocument = directcast(axwebbrowser1.document、_
mshtml.htmldocument)
'興味のあるイベントを定義するインターフェイスにキャスト
mshtml.htmldocumentevents2_event = directcast(doc、_
mshtml.htmldocumentevents2_event)
'オンクリックイベントにハンドラーを定義します
addhandler documents.onclick、onclickprocのアドレス
End Sub
'このイベントの署名は通常とは異なることに注意してください
'ブール値を返すことが期待されます - 偽の場合、デフォルトの効果が関連付けられています
'イベントで(たとえば、クリックがオンの場合は別のページにジャンプします
'ハイパーリンク)がキャンセルされます。
プライベート機能onclickproc(byval obj as mshtml.ihtmlleventobj)として
'ページ上のオブジェクトがクリックされました - あなたはについてもっと知ることができます
'OBJのプロパティを照会することにより、このオブジェクトのタイプと位置
'...
エンド関数
翻訳者のメモ:
これはTuenhaiの最初の翻訳です。
私の個人的な経験は、最近の海外でのプログラムデザインのウェブサイトを旅行することから多くの恩恵を受けました。また、書道学習の「最高の学習」についても考えました。共有ウェアの方法は、国際的に進むことにあります。ソフトウェア設計を学習するとき、これは同じことではありませんか?国際学習リソースは、国内の学習リソースと比較してどうですか?
英語は決して障害ではありません。トゥエンハイは、彼の英語があなたよりも優れていると信じていません。中学校の基本とKingsoft PowerWordsで十分です。