- PR -

継承フォームが開けない

投稿者投稿内容
KKK
大ベテラン
会議室デビュー日: 2003/10/10
投稿数: 119
投稿日時: 2005-09-29 14:29
お世話になります。
現在、VisualStudio2003、VB.NETで開発を行っています。

元となるフォームを作成し、それを継承して各業務画面を作成しようと
しています。
初めは継承してデザインを変更していたのですが、突然以下のような
エラーが表示されてデザインが表示できなくなりました。

「ドキュメントを読み込み中にエラーが発生しました。このエラーを修正してから、
再度ドキュメントを読み込んでください。エラーメッセージは以下の通りです。オブジェクト参照がオブジェクトインスタンスに設定されていません。」

過去の掲示板や他の掲示板を検索して、MSのバグらしいということまでは判明しました(http://support.microsoft.com/default.aspx?scid=kb;ja;814732#top)。
回避方法として、グローバルアセンブリキャッシュに作成したDLLを登録する方法が
載っていたのですが、それが以下のエラーでうまくいきませんでした。

「Failure adding assembly to the cache: Attempt to install an assembly without a strong name」

どなたか同様のエラーになった方がいらっしゃいましたら、ご教授下さい。
お願いします。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2005-09-29 14:38
こんにちは、じゃんぬ です。

引用:

KKKさんの書き込み (2005-09-29 14:29) より:

「ドキュメントを読み込み中にエラーが発生しました。このエラーを修正してから、
再度ドキュメントを読み込んでください。エラーメッセージは以下の通りです。オブジェクト参照がオブジェクトインスタンスに設定されていません。」


これは、リソースのバグと無関係だと思うんですが...
継承フォームでリソースが剥がされるのは私も知っていますが、
画面デザイナが開けられないのとは別問題だと思います。

ちなみに、コンストラクタ (InitializeComponent メソッド内) などで、
NullReferenceException が発生すると、画面デザイナを開くことはできませんし、
KKK さんの提示した例外メッセージが出力されます。
これはコードと画面デザイナが同期を取るためです。

違う [BUG] の話だったらごめんなさい。(*_ _)"


_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
囚人
ぬし
会議室デビュー日: 2005/08/13
投稿数: 1019
投稿日時: 2005-09-29 14:41
こんにちは。

Web じゃなくて Windows フォームですね?

エラーの内容が、リンク先と微妙に違うような気がしますが。

System.Windows.Forms.Form <- MyBaseFormA <- From1
このような構造になっていて
そして、MyBaseFormA が抽象クラスだとか。
以前どこかのスレッドで問題になってましたね。(記憶が定かなら)

#編集
間違い修正


[ メッセージ編集済み 編集者: 囚人 編集日時 2005-09-29 14:42 ]

[ メッセージ編集済み 編集者: 囚人 編集日時 2005-09-29 14:44 ]
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2005-09-29 14:49
こんにちは、じゃんぬ です。

引用:

囚人さんの書き込み (2005-09-29 14:41) より:

エラーの内容が、リンク先と微妙に違うような気がしますが。


ええ、違う問題だと思います。

引用:

System.Windows.Forms.Form <- MyBaseFormA <- MyBaseFormB <- From1
もしかして、このような構造になっていませんか?
そして、MyBaseFormA が抽象クラスだとか。
以前どこかのスレッドで問題になってましたね。


最近、囚人さんにうまく誘導されている気がする...w

  VB.NET2003の画面の継承について

これですよね?


_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
囚人
ぬし
会議室デビュー日: 2005/08/13
投稿数: 1019
投稿日時: 2005-09-29 15:04
引用:

  VB.NET2003の画面の継承について

これですよね?



まさにそれですw(うまく誘導はしてませんが^^;
KKK
大ベテラン
会議室デビュー日: 2003/10/10
投稿数: 119
投稿日時: 2005-09-29 16:04
ありがとうございます。

教えていただいたページを参照してみました。
現象は全く今回と同じですね。

でも結局、どうすれば回避できるのでしょうか?
(すいません。知識がなくて解決策がわかりませんでした。)
囚人
ぬし
会議室デビュー日: 2005/08/13
投稿数: 1019
投稿日時: 2005-09-29 16:09
結局、「元になるフォーム」とやらを抽象クラスでなく、具象クラスにするしかないですね。
例え概念的には抽象にしたくても。
何せ、IDE がインスタンス化しますからね。^^;
KKK
大ベテラン
会議室デビュー日: 2003/10/10
投稿数: 119
投稿日時: 2005-09-29 16:47
自分が作成したクラスが抽象クラスか具象クラスかが分かりません。

どうやって見分けたらいいですか?

また、違い等が分かるような参考ページはありますか?

スキルアップ/キャリアアップ(JOB@IT)