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

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

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

Re[3]: フォームの表示について


(過去ログ 72 を表示中)

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

■41808 / inTopicNo.1)  フォームの表示について
  
□投稿者/ だいちくん (1回)-(2009/09/30(Wed) 18:36:02)

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

VB2008にて開発を行っております。

どうしても行き詰っているのでご教授ください。

メニュー画面にコマンドボタンを4つ配置し、それぞれ違うフォームを呼び出しております。
Private Sub Btn_Input_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Btn_Input.Click
Frm_M1.Show() ←ここでエラー
End Sub

(閉じる際にM1.Disposeしています。)

初回フォーム表示時には、正常に表示されますが一回閉じて同じフォームを再度表示するとエラーになります。
以下がエラー内容です。

フォームの作成中にエラーが発生しました。詳細については、Exception.InnerException を参照してください。エラー: 既定のインスタンスからの作成中に、フォームがそれ自体を参照し、無限再帰の原因になりました。フォームのコンストラクタ内では、'Me' を使用してそのフォームを参照してください。

どう対処していいか検討もつかないです。

なお、フォーム4つにモジュールを4つ使用し、それぞれの処理を分けてコードを作成しています。

よろしくお願い致します。
引用返信 編集キー/
■41821 / inTopicNo.2)  Re[1]: フォームの表示について
□投稿者/ やじゅ (1353回)-(2009/09/30(Wed) 21:28:03)
やじゅ さんの Web サイト
No41808 (だいちくん さん) に返信
> メニュー画面にコマンドボタンを4つ配置し、それぞれ違うフォームを呼び出しております。
> Private Sub Btn_Input_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Btn_Input.Click
> Frm_M1.Show() ←ここでエラー
> End Sub
>
> (閉じる際にM1.Disposeしています。)
>

どこで、New Frm_M1をしているのでしょう。M1.Disposeも不要なのでは?
http://dobon.net/vb/dotnet/form/showform.html
引用返信 編集キー/
■41824 / inTopicNo.3)  Re[2]: フォームの表示について
□投稿者/ gtk2k (85回)-(2009/09/30(Wed) 22:32:27)
No41821 (やじゅ さん) に返信
> ■No41808 (だいちくん さん) に返信
>>メニュー画面にコマンドボタンを4つ配置し、それぞれ違うフォームを呼び出しております。
>>Private Sub Btn_Input_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Btn_Input.Click
>> Frm_M1.Show() ←ここでエラー
>> End Sub
>>
>>(閉じる際にM1.Disposeしています。)
>>
>
> どこで、New Frm_M1をしているのでしょう。M1.Disposeも不要なのでは?
> http://dobon.net/vb/dotnet/form/showform.html

Newしていないと思われる。
引用返信 編集キー/
■41832 / inTopicNo.4)  Re[3]: フォームの表示について
□投稿者/ たくボン (233回)-(2009/10/01(Thu) 00:33:37)
No41824 (gtk2k さん) に返信
> ■No41821 (やじゅ さん) に返信
>>■No41808 (だいちくん さん) に返信
>
> Newしていないと思われる。

おそらくそれですね。
暗黙のインスタンスを使うと再度Showする時にマネージリソースがDisposeされちゃってたりするから、面倒でもNewしましょう。

こういう類のエラーは、ガベージも絡んだりして毎回発生するとは限らないと思うので、結構後で不具合見つけたりするんですよね。
一度、他のプログラマが作ったシステムでこの手のエラーが発生していて、頻度も半日から1日に1回程度だったので、原因を突き止めるまで苦労した覚えがあります。
引用返信 編集キー/


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

このトピックに書きこむ

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

管理者用

- Child Tree -