DOBON.NET DOBON.NETプログラミング掲示板過去ログ

WebBrowserコントロールを制御するについて

環境/言語:[xp/vb2005]
分類:[.NET]

以下のサンプルコードを使用させていただいているのですが、一つエラーが出て困っています。

http://jumbofoot.cocolog-nifty.com/yass_vbnet_tips/2006/09/webbrowser_1de3.html



エラー箇所
DirectCast(Me._WebBrowser.ActiveXInstance, IOleObject5).SetClientSite(Me)


エラー内容
NullreferenceException
「オブジェクト参照がオブジェクト インスタンスに設定されていません。」



これは何が原因と考えられますでしょうか?


どうか教えて下さい。
■No29047に返信(ザナドゥさんの記事)
> エラー内容
> NullreferenceException
> 「オブジェクト参照がオブジェクト インスタンスに設定されていません。」

エラー内容そのままだと思いますが...

Me._WebBrowser が Null なのでは?
2011/09/14(Wed) 23:11:11 編集(投稿者)

■No29047に返信(ザナドゥさんの記事)
> 以下のサンプルコードを使用させていただいているのですが、一つエラーが出て

> エラー箇所
> DirectCast(Me._WebBrowser.ActiveXInstance, IOleObject5).SetClientSite(Me)
>
>
> エラー内容
> NullreferenceException
> 「オブジェクト参照がオブジェクト インスタンスに設定されていません。」
>
>
>
> これは何が原因と考えられますでしょうか?

おそらく、Me._WebBrowser.ActiveXInstanceがNothingなのでしょう。
もしかして、WebBrowserのVisibleがFalseとか。
WebBrowserを非表示にしたい時にActiveXInstanceがNothingになる現象があり、その時はWebBrowserControllerのインスタンスを作成してから
WebBrowserのVisibleをFalseにして、この現象を回避したことがあります。

YAS様のブログに質問を書いてもいいかも。
みなさん返信有難うございます。

一つのプロジェクトにformを2つ設置して、サンプルコードをそれぞれに設置しています。
一つはエラーが無くうまくいっているのですが、もう一つのFormでエラーが起こっています。

もう使われていますとエラーが出る部分は、DLCTL2などにして、数字の2わ足して変えています。

ここらへんも関係しますでしょうか?
■No29051に返信(ザナドゥさんの記事)

> もう使われていますとエラーが出る部分は、DLCTL2などにして、数字の2わ足して変えています。

「もう使われています」エラー?それは何ですか?
「オブジェクト参照がオブジェクト インスタンスに設定されていません」エラーじゃなくって?
(質問の内容が変わっています?)

> 一つのプロジェクトにformを2つ設置して、サンプルコードをそれぞれに設置しています。

もしかして、Formクラス以外のクラスも各フォーム内に用意していますか?
もしそうならば、参考サイトのWebBrowserControler以下のクラスはそれぞれのFormで共通で使うべきです。
これらクラス用のvbファイルを用意しましょう。
■No29051に返信(ザナドゥさんの記事)
> みなさん返信有難うございます。
>
> 一つのプロジェクトにformを2つ設置して、サンプルコードをそれぞれに設置しています。
> 一つはエラーが無くうまくいっているのですが、もう一つのFormでエラーが起こっています。
>
> もう使われていますとエラーが出る部分は、DLCTL2などにして、数字の2わ足して変えています。
>
> ここらへんも関係しますでしょうか?

まずは、

> エラー内容
> NullreferenceException
> 「オブジェクト参照がオブジェクト インスタンスに設定されていません。」

このエラーの件で指摘されたことを確認してみてください。
2011/09/16(Fri) 04:34:33 編集(投稿者)

■No29053に返信(ヴァンさんの記事)

> まずは、
>
>>エラー内容
>>NullreferenceException
>>「オブジェクト参照がオブジェクト インスタンスに設定されていません。」
>
> このエラーの件で指摘されたことを確認してみてください。
>


>Me._WebBrowser が Null なのでは?

ヴァンさん、返信有難うございます。

おっしゃる通り、
Dim WebBrowser1 As New WebBrowser
この1行が抜けていました。

有難うございます。
■No29052に返信(タラオさんの記事)

> もしかして、Formクラス以外のクラスも各フォーム内に用意していますか?
> もしそうならば、参考サイトのWebBrowserControler以下のクラスはそれぞれのFormで共通で使うべきです。
> これらクラス用のvbファイルを用意しましょう。

タラオさん、返信有難うございます。

おっしゃる通り、Publicにして共通で使うようにしたら問題解決しました。

有難うございました。
解決済み!

DOBON.NET | プログラミング道 | プログラミング掲示板