VB.NETで、継承フォームを作成したのですが、
いったん保存して次に立ち上げると、継承フォームが
開かない現象があります。
「オブジェクト参照がオブジェクトインスタンスに設定されていません」というエラーがでます。どうしたら解決できるか教えてください!
簡単です。
自力で問題箇所を探して、
オブジェクト参照がオブジェクトインスタンスに設定すればいいのです。
>自力で問題箇所を探して、
>オブジェクト参照がオブジェクトインスタンスに設定すればいいのです。
…確かにその通りだっΣ(‾□‾;)
オブジェクトの『インスタンス』についてヘルプ等で調べましたか?
[IT用語辞典 e-Words : インスタンスとは]
http://e-words.jp/w/E382A4E383B3E382B9E382BFE383B3E382B9.html
質問のエラーは、オブジェクトの参照変数に実体であるインスタンスへの
参照アドレスが格納されていない…つまり『変数の中身が空』だと
警告されています。基本的には変数に New を使ってクラスの実体を
入れてやれば解決します。そしてこれは直接『継承』とは関係ありません。
こちらで問題の箇所を探す事は不可能ですので、初期化処理のあたりで
インスタンスを生成し忘れている部分を探すか、見当が付かないなら
一度、新規でプロジェクトを作成し、継承フォームを用意した時点から、
現在のコードまで順に追加していき、どのコードが影響しているか調べれば
解決すると思われます。
>自力で問題箇所を探して、
>オブジェクト参照がオブジェクトインスタンスに設定すればいいのです。
ソースが何百行と多いときは
開始(デバックありで開始)させて、反転した部分がそのエラー箇所に鳴りますので、
繋がっている変数あたりを自力で探す。
と楽になります。
>開始(デバックありで開始)させて、反転した部分がそのエラー箇所に鳴りますので、
例外処理が綺麗に埋め込まれてて、
デバッグしてもエラー箇所で止らなかったりすることもあったりしますが orz
#バグを例外処理で隠さないで下さいよ・・・orz
お返事ありがとうございます。実行時エラーではなく、
継承フォームのフォームウィンドウも開かない状態なんです。
一度そのエラーがおきると、いくら新規に継承フォームを作成しても
継承フォームのフォームウィンドウが開かないといった現象です。
(同じエラーがでてしまって。)
もう一度確認してみますが、もしよければまたお返事お願いいたします。
>一度そのエラーがおきると、いくら新規に継承フォームを作成しても
>継承フォームのフォームウィンドウが開かないといった現象です。
その状態で、継承元フォームを新規追加のきれいなフォームに
しても起こりますか?
起こるなら[Visual Studio .NET]自体の継承フォームを
作成する部分がなんかおかしい→マイクロソフトへ問い合わせ
起こらないなら継承元フォームの何かで引っ掛かってる
のでしょうから、継承元フォームを修正してみて下さい。
…New や InitializeComponent だけでなく、Paint イベント
に書いてあるコードも影響を与えているようです。インスタンスを
生成する必要のある処理はありませんか?一度、自分で書いた
全ての処理をコメントにしてみたら改善されませんか?
ユーザコントロールや別プロジェクトの参照を行っている
場合など、一度ビルドすると改善される場合があります。
ビルドの際に過去の情報がうまく更新されずに不具合を
起こす場合があります。プロジェクトのフォルダ内に作成
される bin と obj のフォルダを全て削除してからの
ビルドも試してみて下さい。
ググってて通りすがりました。
これですね。
[BUG] 継承フォームを Windows フォーム リソース エディタで開けない
http://support.microsoft.com/default.aspx?scid=kb;ja;814732
ツイート | ![]() |