人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

VisualBasic2005で勉強中の者です。WebBrowserが新しいウィンドウを開こうとする時(Target=New)、それを新しいウィンドウのかわりにそのWebBrowser自身で開きたいのですが、ネットで調べるうちVB2005にはNewWindow2イベントが無いのでかなり難しいという結論に達しました。つきましては、このような機能を実現したコードをご提示頂けませんでしょうか。なお、http://homepage1.nifty.com/yasunari/VB/VB2005/WebBrowserNewWindow2Event.htm は参照済みなのですが、複雑すぎて私の理解の範囲をこえていました…

●質問者: crashtruck
●カテゴリ:コンピュータ インターネット
✍キーワード:イベント ウィンドウ コード ネット 勉強
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● KirakiraHikaru
●100ポイント ベストアンサー

私も読み解いた訳ではないので意味については詳しく解説できないのですが、

下記のようにすると作成中のアプリケーションに実装できるかと思います。


「VB2005のWebBrowserコントロールにNewWindow2イベントを拡張する」

http://homepage1.nifty.com/yasunari/VB/VB2005/WebBrowserNewW...

のソースコード部分を以下サンプルコードとします。


1.プロジェクト内にクラスを追加

ファイル名:ExWebBrowser.vb

ファイル内容:サンプルコードをコピーして張り付ける。

そのうち、Form1クラス(Public Class Form1から直近のEnd Classまで)を削除する。

さらに「Class ExWebBrowser」を「Public Class ExWebBrowser」に変更。

2.ツールボックスに追加されたExWebBrowserをFormに配置(ExWebBrowser1)

3.サンプルコードのWebBrowser_NewWindow2関数をFormに追加

関数内の「'新しいウィンドウが開くのを抑制」の下の2行のみ残し、それまでのコードは削除

4.FormのLoadイベントに下記のコードを追加

AddHandler ExWebBrowser1.NewWindow2, AddressOf WebBrowser_NewWindow2

◎質問者からの返答

ご解答ありがとうございました。手順3を実行後、下記の2つのエラーが出ます。(1)'Application' は 'System.Windows.Forms.WebBrowser' のメンバではありません。 (2)'RegisterAsBrowser' は 'System.Windows.Forms.WebBrowser' のメンバではありません。 どうすればよいのでしょう? ぜひろよしくお願い申し上げます。


2 ● KirakiraHikaru
●100ポイント

あ、ごめんなさい、

手順2でExWebBrowserの名前がExWebBrowser1になっていると思いますので、

手順3の関数の中身は下記のようにしてください。

e.ppDisp = Me.ExWebBrowser1.Application
Me.ExWebBrowser1.RegisterAsBrowser = True
◎質問者からの返答

ありがとうございます。できました! またぜひよろしくお願い申し上げます。…と思ったのですが、再度同じことをしてみると、2の段階でツールボックスにExWebBrowserが追加されません。何度もやり直し、先ほどと全く同じようにしているつもりなのですが。なぜでしょうか(泣)


3 ● KirakiraHikaru
●100ポイント

?なんででしょうか?

考えられることととしては、

・手順1のPublicにするのを忘れている

・ファイルを変更した後、ファイルを上書き保存していない

・Formがあるプロジェクトと別のプロジェクトにExWebBrowserを作成している

・リビルドしてみる

くらいです。

◎質問者からの返答

ありがとうございます、リビルドしたら現れました。初歩的なミスだったのでしょうか。とにかく、何度もありがとうございました。またよろしくお願いいたします!

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ