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

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

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

WebBrowserについて


(過去ログ 7 を表示中)

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

■7725 / inTopicNo.1)  WebBrowserについて
  
□投稿者/ スライム 伍長(47回)-(2006/10/24(Tue) 15:55:53)

分類:[VB.NET] 


分類:[VB.NET] 

いつもお世話になっています
環境はWindowsXPでVB2005です
現在フォーム上に2つのWebBrowserを配置して片方にはお気に入り用のXmlファイルを、もう片方はホームページの表示用として配置しています
前者がWebBrowser1、後者がWebBrowser2と名前をつけています
Load時にWebBrowser1.Navigate("C:\お気に入り_2.xml")と記述して、お気に入り表示は出来ました
補足説明として、XmlファイルはXSLを介して見た目はHTMLとして表示させています
No7656を参考にして下さい
問題はここからで、例えばWebBrowser1に表示させたお気に入りのGoogleをクリックすると、WebBrowser1の方がホームページを表示してしまう事です
これをWebBrowser2で表示させるにはどうすれば良いのでしょうか?
またこれはWebBrowserだから駄目なのでしょうか?
ご指摘、アドバイスお願いします

0
引用返信 編集キー/
■7730 / inTopicNo.2)  Re[1]: WebBrowserについて
□投稿者/ ぽぴ王子 軍曹(70回)-(2006/10/24(Tue) 17:00:05)
ぽぴ王子 さんの Web サイト

分類:[VB.NET] 

No7725に返信(スライムさんの記事)

こんにちは。

根本的な仕様を覆すことになってしまうかもしれませんが、お気に入りを
WebBrowser で表示する必要はありますか?
たぶん、お気に入りを格納している XML ファイルを XSLT を通して HTML とし
て表示できるためだと思いますが、そこから考え直してみてはどうでしょうか。

私が作るとしたらですが、お気に入りXMLファイルは自分で読み込み、解析をし
て現在 WebBrowser1 がある場所に TreeView コントロールで表示すると思いま
す(特に TreeView である必要はありませんがそれっぽいので)。
そして TreeView の Node がクリックされたら、対応するお気に入りの URL を
WebBrowser2 で表示する感じでしょうか。

あくまで WebBrowser でやるとした場合でも、WebBrowser1 でクリックされた内
容を WebBrowser2 で表示するとしたら、WebBrowser1 でクリックされたタイミ
ングでその URL を取得し、WebBrowser2 に投げてやるようなコードを記述する
必要はあると思います。

0
引用返信 編集キー/
■7731 / inTopicNo.3)  Re[2]: WebBrowserについて
□投稿者/ スライム 伍長(48回)-(2006/10/24(Tue) 17:43:31)

分類:[VB.NET] 

ぽぴ王子さんありがとうございます
WebBrowserを使ったのは単純にWebBrowserの方が表示は楽だとうと言う事と、それ以外はあまり自信が無い為です
後は、折角覚えたのだからそれを使ってみたいと言う考えからです

まずはWebBrowserの方から攻めて行きたいです
その後にTreeViewを覚えて行きたいと思います

WebBrowserのクリックするとサイトが表示されると言うのはプロパティのAllowNavigationをfalseにする事で表示しない様に出来ました
後は表示されたXMLをクリックしたらWebBrowser2に表示されると言うのを教えて頂けませんか?
お願いします

0
引用返信 編集キー/
■7738 / inTopicNo.4)  Re[3]: WebBrowserについて
□投稿者/ あん 二等兵(2回)-(2006/10/24(Tue) 19:44:38)

分類:[VB.NET] 

AllowNavigationをfalseに設定するんじゃなくて
Webbrowser1がURLを表示するときに
表示を中止し、そのURLを
Webbrowser2に表示すればいいと思います。

Private Sub WebBrowser1_BeforeNavigate2(ByVal pDisp As Object, URL As Variant, Flags As Variant, TargetFrameName As Variant, PostData As Variant, Headers As Variant, Cancel As Boolean)
Cancel = True '表示中止
WebBrowser2.Navigate URL 'WebBrowser2で表示
End Sub

0
引用返信 編集キー/
■7751 / inTopicNo.5)  Re[4]: WebBrowserについて
□投稿者/ スライム 伍長(49回)-(2006/10/25(Wed) 13:12:40)

分類:[VB.NET] 

あんさん、返事がおそくなってしまってすみません
教えて頂いたコードを記述したのですが、Webbrowser1にホームページが表示されてしまいました
ブレークポイントを置いてみたのですが、読まれずにスルーされてしまいました


0
引用返信 編集キー/
■7752 / inTopicNo.6)  Re[5]: WebBrowserについて
□投稿者/ あん 二等兵(3回)-(2006/10/25(Wed) 13:19:34)

分類:[VB.NET] 

No7751に返信(スライムさんの記事)
> あんさん、返事がおそくなってしまってすみません
> 教えて頂いたコードを記述したのですが、Webbrowser1にホームページが表示されてしまいました
> ブレークポイントを置いてみたのですが、読まれずにスルーされてしまいました
>
おかしいですねえ。
ソースをみたら何かわかるかも

0
引用返信 編集キー/
■7753 / inTopicNo.7)  Re[6]: WebBrowserについて
□投稿者/ あん 二等兵(4回)-(2006/10/25(Wed) 13:32:46)

分類:[VB.NET] 

Vs2005のWebbrowser使ってるのかな?

0
引用返信 編集キー/
■7754 / inTopicNo.8)  Re[7]: WebBrowserについて
□投稿者/ スライム 伍長(50回)-(2006/10/25(Wed) 13:49:37)

分類:[VB.NET] 

> Vs2005のWebbrowser使ってるのかな?
はい、あんさんの言う様にVS2005(Microsoft Visual Basic 2005)のWebBrowserコントロールを使っています



0
引用返信 編集キー/
■7756 / inTopicNo.9)  Re[8]: WebBrowserについて
□投稿者/ あん 二等兵(5回)-(2006/10/25(Wed) 14:51:38)

分類:[VB.NET] 

No7754に返信(スライムさんの記事)
>>Vs2005のWebbrowser使ってるのかな?
> はい、あんさんの言う様にVS2005(Microsoft Visual Basic 2005)のWebBrowserコントロールを使っています
>
Webbrouser_Navigatingイベントかな
URL→e.URL.ToString()
Cansel→e.Cancel
にしてみてください。

あと一回目(XML読み出しの)ときは動作しないように工夫してね。

0
引用返信 編集キー/
■7758 / inTopicNo.10)  Re[9]: WebBrowserについて
□投稿者/ スライム 伍長(51回)-(2006/10/25(Wed) 16:58:03)

分類:[VB.NET] 

あんさん、ありがとうございます
> Webbrouser_Navigatingイベントかな
> URL→e.URL.ToString()
> Cansel→e.Cancel
> にしてみてください。
私は以下の様に直してみました
Private Sub WebBrowser1_Navigating(ByVal sender As Object, ByVal e As System.Windows.Forms.WebBrowserNavigatingEventArgs, ByVal URL As Object)
e.Cancel = True
WebBrowser2.Navigate(e.Url.ToString())
End Sub
WebBrowser1が反応して、WebBrowser2は無反応でした
普通にWebBrowser1_Navigatingを設定して、e.Cancel = Trueを設定しみたら、表示もされませんでした
他にもWebBrowser1とWebBrowser2の両方のブラウズする所を設定してみたら無限ループに陥ったりと散々でした。
WebBrowserを使った表示はやっぱり無理なんでしょうか・・・
他のアイデアやアドバイスがあれば教えて下さい

0
引用返信 編集キー/
■7760 / inTopicNo.11)  Re[10]: WebBrowserについて
□投稿者/ 魔界の仮面弁士 少佐(195回)-(2006/10/25(Wed) 17:02:16)

分類:[VB.NET] 

No7758に返信(スライムさんの記事)
> Private Sub WebBrowser1_Navigating(ByVal sender As Object, ByVal e As System.Windows.Forms.WebBrowserNavigatingEventArgs, ByVal URL As Object)

このメソッドが、イベントハンドラになっていないからでは。
http://www.microsoft.com/japan/msdn/vs/vb/vbtskOverridingEventHandlersWithVisualBasicNET.aspx

Handles 句が無いのはともかくとして、引数定義がまるで違っていますし。

0
引用返信 編集キー/
■7762 / inTopicNo.12)  Re[10]: WebBrowserについて
□投稿者/ あん 二等兵(6回)-(2006/10/25(Wed) 17:45:32)

分類:[VB.NET] 

無理ではないです。
こちらでは動いてます。

0
引用返信 編集キー/
■7763 / inTopicNo.13)  Re[10]: WebBrowserについて
□投稿者/ あん 二等兵(7回)-(2006/10/25(Wed) 17:51:41)

分類:[VB.NET] 

他のアイデアはないので
退散しますね。

0
引用返信 編集キー/
■7774 / inTopicNo.14)  Re[11]: WebBrowserについて
□投稿者/ ぽぴ王子 軍曹(71回)-(2006/10/26(Thu) 10:09:16)
ぽぴ王子 さんの Web サイト

分類:[VB.NET] 

こんにちは。

実は私は WebBrowser コントロールを使ったことがないので、これ以上のアドバ
イス(というか WebBrowser コントロール特有の機能についてのアドバイス)は
難しいのです。どうもすいません。
なので、勘というかなんとなくという感じのアドバイスになってしまいますが。

あんさんのアドバイスは的確なように思えますね。WebBroser.Navigating イベ
ントが発生したら、そのナビゲートをキャンセルさせて、実際に飛ぼうとしてい
た URL を WebBrowser2 に投げてやることでなんとかなりそうかなと。
問題は、No7758でのスライムさんの実装かもしれません。
魔界の仮面弁士さんもおっしゃられてますが、Navigating イベントの Handle
句もないようですし、引数定義も異なっていますね。WebBrowser1 のイベントを
正しく定義されましたか?
http://msdn2.microsoft.com/ja-jp/library/system.windows.forms.webbrowser.navigating.aspx

ただちょっと気になるのは
> 普通にWebBrowser1_Navigatingを設定して、e.Cancel = Trueを設定しみたら、表示もされませんでした
というところで、e.Cancel = True で表示もされないということは、正しく
WebBrowser1 の表示をキャンセルできているということなのではないでしょうか。
ただ、それが XML 読み込み時にも働いてしまっていて、読み込みもキャンセル
されているとか。
> あと一回目(XML読み出しの)ときは動作しないように工夫してね。
あんさんのこのアドバイスはそれを指しているのかなと思いました。

結局のところ、スライムさんがあんさん(に限らずですが)のアドバイスを「な
ぜそうなるのか」を考えながら理解して実装すれば、おかしなことにはならなさ
そうですけどね。とは言え考えてもわからないことはもちろんあるでしょうし、
実装が間違っていてつまづくこともあると思いますし、そういったときに改めて
質問していただけると、もうすこしアドバイスしやすくなるかもしれません。

もうちょっと試行錯誤してみてください。

0
引用返信 編集キー/
■7782 / inTopicNo.15)  Re[12]: WebBrowserについて
□投稿者/ スライム 伍長(52回)-(2006/10/26(Thu) 14:31:39)

分類:[VB.NET] 

ぽぴ王子さん、ありがとうございます
考えが至らなかったと思います、反省です
取りあえず普通にWebBrowser1_Navigatingを設定して、e.Cancel = Trueを設定して、どう動作するかやってます
変かなと思うんですが
Dim f As Integer
Do
If f = 0 Then
Exit Do
End If
WebBrowser2.Navigate(e.Url.ToString)
e.Cancel = True
f = f + 1
Loop
上記でフォームLoad時は表示出来たのですが、その後の動作は今までと変わらなかったです。
ん〜、取りあえずは色々やってみます。どこかで成功するでしょうから

0
引用返信 編集キー/
■7784 / inTopicNo.16)  Re[13]: WebBrowserについて
□投稿者/ スライム 伍長(53回)-(2006/10/26(Thu) 14:46:27)

分類:[VB.NET] 

魔界の仮面弁士さん、あんさん、ぽぴ王子さん色々すみませんでした
そしてありがとうございました
何とか出来ました
Public Class Form1
Dim x As Integer
とまず記述して
x = 0
x = x + 1
とフォームロード時に記述
Do
x = x + 1
If x = 1 Then
Exit Do
End If
WebBrowser2.Navigate(e.Url.ToString)
e.Cancel = True
Exit Do
Loop
とWebBrowser1_Navigating時にしたら出来ました。
変かもしれませんけど、まあ取りあえずと言った感じです

解決済み
引用返信 編集キー/


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

このトピックに書きこむ

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

管理者用

- Child Tree -