C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[6]: WebBrowserコントロールから別窓


(過去ログ 87 を表示中)

[トピック内 7 記事 (1 - 7 表示)]  << 0 >>

■52036 / inTopicNo.1)  WebBrowserコントロールから別窓
  
□投稿者/ やんまー (14回)-(2010/07/29(Thu) 16:08:35)

分類:[VB.NET/VB2005 以降] 

「WebBrowserコントロール内でtarget=_brank"なリンクを押すと、別窓でIEが開いてしまう」

恐れいります。
簡単なテストツールをつくろうとしてつまずいてます。

表題のとおりなのですが、なかなかうまくいきません。

まず、.netFramework2.0以降ではNewWindow2イベントがなくなっているため、できないということですよね・・・
で、

VB2005のWebBrowserコントロールにNewWindow2イベントを拡張する
http://homepage1.nifty.com/yasunari/VB/VB2005/WebBrowserNewWindow2Event.htm

のような素晴らしい物を見つけたので、そのままコピペさせてもらいめでたくNewWindow2が使えるようになりました。。。

しかし、

http://rucio.bbs.coocan.jp/?m=listthread&t_id=568&summary=on
の魔界の仮面弁士 様の回答の

「(4) NewWindow2 イベント内で ppDisp をセットすると、任意の WebBrowser に表示させることができる。 」

をまさにやりたいのですが、どうすればいいのかわかりませんでした・・・

とりあえず、ppDispで探してみますと、

http://support.microsoft.com/kb/184876/ja
-----------------
Private Sub WebBrowser1_NewWindow2(ppDisp As Object,
Cancel As Boolean)
Dim frmWB As Form1
Set frmWB = New Form1

frmWB.WebBrowser1.RegisterAsBrowser = TRUE

Set ppDisp = frmWB.WebBrowser1.Object
frmWB.Visible = True
End Sub
-----------------
((この例はVBAだからちょっと違うのかも・・・汗))

みたいな感じで、新たにフォームを作ってそこに表示、見たいのしかありませんでした。

単に、もうひとつWebBrowseを作ってあるので、そこに表示させたいだけなのですが。


Sub ExWebBrowser1NewWindow2(sender As Object, e As WebBrowserNewWindow2EventArgs)
e.ppDisp=me.webBrowser1
End Sub

な感じにしてみたのですが、、何も変化がありません。
(ただIEが別で立ち上がらなくなったので、前進はしてるかも・・・?!)

あと一歩だと思うのですが、どうぞよろしくお願いいたします。
引用返信 編集キー/
■52039 / inTopicNo.2)  Re[1]: WebBrowserコントロールから別窓
□投稿者/ todo (32回)-(2010/07/29(Thu) 16:38:54)
> VB2005のWebBrowserコントロールにNewWindow2イベントを拡張する
> http://homepage1.nifty.com/yasunari/VB/VB2005/WebBrowserNewWindow2Event.htm
>
> のような素晴らしい物を見つけたので、そのままコピペさせてもらいめでたくNewWindow2が使えるようになりました。。。


NewWindow2イベントの中身も使えないのでしょうか?

'新しいウィンドウが開くのを抑制
e.ppDisp = Me.WebBrowser1.Application
Me.WebBrowser1.RegisterAsBrowser = True



引用返信 編集キー/
■52040 / inTopicNo.3)  Re[2]: WebBrowserコントロールから別窓
□投稿者/ やんまー (15回)-(2010/07/29(Thu) 16:47:42)
No52039 (todo さん) に返信
>>VB2005のWebBrowserコントロールにNewWindow2イベントを拡張する
>>http://homepage1.nifty.com/yasunari/VB/VB2005/WebBrowserNewWindow2Event.htm
>>
>>のような素晴らしい物を見つけたので、そのままコピペさせてもらいめでたくNewWindow2が使えるようになりました。。。
>
>
> NewWindow2イベントの中身も使えないのでしょうか?
>
> '新しいウィンドウが開くのを抑制
> e.ppDisp = Me.WebBrowser1.Application
> Me.WebBrowser1.RegisterAsBrowser = True
>
>
>

todo様

早速ありがとうございます。

残念ながら以下のような結果になりました・・・

'Application' は 'System.Windows.Forms.WebBrowser' のメンバではありません。 (BC30456)
'RegisterAsBrowser' は 'System.Windows.Forms.WebBrowser' のメンバではありません。 (BC30456)
引用返信 編集キー/
■52042 / inTopicNo.4)  Re[3]: WebBrowserコントロールから別窓
□投稿者/ todo (33回)-(2010/07/29(Thu) 17:16:14)
サンプル通りなら、そのようなエラーは出ないはずです。
引用返信 編集キー/
■52050 / inTopicNo.5)  Re[4]: WebBrowserコントロールから別窓
□投稿者/ やんまー (16回)-(2010/07/29(Thu) 20:40:51)
No52042 (todo さん) に返信
> サンプル通りなら、そのようなエラーは出ないはずです。

失礼しました。勘違いしていました。

WebBrowser1  (ただのWebBrowser)
exWebBrowser1 (拡張版)

の2つを並べて、exWebBrowser1 からのhrefを WebBrowser1 に表示させようとしていました。
こういう事はできないってことですね。。

というわけで2つともexWebBrowser にして

exWebBrowser1 から exWebBrowser2 へ表示させたいです。

件の
------------------------
'新しいウィンドウが開くのを抑制
e.ppDisp = Me.WebBrowser1.Application
Me.WebBrowser1.RegisterAsBrowser = True
------------------------
はコンパイルが通りました。これで別窓(IE)が開かなくなりました。

で、やりたい事なんですが、
この開くべきページをexWebBrowser2 へ表示させるにはどうしたらよいのでしょうか。

よろしくお願いします。

引用返信 編集キー/
■52053 / inTopicNo.6)  Re[5]: WebBrowserコントロールから別窓
□投稿者/ YAS (8回)-(2010/07/29(Thu) 22:59:15)
>VB2005のWebBrowserコントロールにNewWindow2イベントを拡張する
>http://homepage1.nifty.com/yasunari/VB/VB2005/WebBrowserNewWindow2Event.htm
>のような素晴らしい物を見つけたので、そのままコピペさせてもらいめでたくNewWindow2が使えるようになりました。。。

私のコードはVBのヘルプのサンプルコードのコピペみたいなものなので....(恥)

>この開くべきページをexWebBrowser2 へ表示させるにはどうしたらよいのでしょうか。

e.ppDisp = exWebBrowser2.Application
exWebBrowser2.RegisterAsBrowser = True

とすればよいのではないでしょうか。
引用返信 編集キー/
■52070 / inTopicNo.7)  Re[6]: WebBrowserコントロールから別窓
□投稿者/ やんまー (17回)-(2010/07/30(Fri) 11:17:27)
2010/07/30(Fri) 23:14:25 編集(投稿者)
2010/07/30(Fri) 23:14:22 編集(投稿者)

YAS様

あああーYAS様ですね(汗

わざわざありがとうございます。

> e.ppDisp = exWebBrowser2.Application
> exWebBrowser2.RegisterAsBrowser = True


でうまくいきました!

ただし、ちょっとだけ奇妙なことが起こりました。

実はタブコントロールのページ1にexWebBrowser1、ページ2にexWebBrowser2
とやっていたんですが、
ロード後に一度ページ2をクリックして(exWebBrowser2を一度開く)やらないと
IEが開いてしまいました。

一度でも選択すればよいのですが・・・


でExWebBrowser1NewWindow2 のはじめに
tabControl1.SelectTab(TabPage2)
を実行してやることで解決しました!!

ありがとうございました!





No52053 (YAS さん) に返信
> >VB2005のWebBrowserコントロールにNewWindow2イベントを拡張する
> >http://homepage1.nifty.com/yasunari/VB/VB2005/WebBrowserNewWindow2Event.htm
> >のような素晴らしい物を見つけたので、そのままコピペさせてもらいめでたくNewWindow2が使えるようになりました。。。
>
> 私のコードはVBのヘルプのサンプルコードのコピペみたいなものなので....(恥)
>
> >この開くべきページをexWebBrowser2 へ表示させるにはどうしたらよいのでしょうか。
>
> e.ppDisp = exWebBrowser2.Application
> exWebBrowser2.RegisterAsBrowser = True
>
> とすればよいのではないでしょうか。
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -