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

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

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

フォームのDisposeについて


(過去ログ 3 を表示中)

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

■2584 / inTopicNo.1)  フォームのDisposeについて
  
□投稿者/ しょうだい 二等兵(1回)-(2006/02/17(Fri) 19:53:13)

分類:[VB.NET] 


分類:[VB.NET] 

初めて書き込みをさせて頂きます。
VB6.0からVB.NETへ移行しはじめて1ヶ月足らずの経験で、オブジェクト指向
プログラミングについてもまだまだ理解できていません。

フォームの Dispose についてお聞きします。
『オブジェクトの破棄を保証する』にも関係すると思うのですが、
『フォームを閉じる』Tips で以下のように Dispose をしていますが、

Dim hForm1 As New Form1()
hForm1.Show()
MessageBox.Show("Form1 を閉じます")
hForm1.Close()
hForm1.Dispose()

"hForm1.Close()"でも hForm1 の Dispose メソッドが実行されません
でしょうか?
その上で、"hForm1.Dispose()"も必要なのでしょうか?(明示的に?)

よろしくお願い致します。


0
引用返信 編集キー/
■2587 / inTopicNo.2)  Re[1]: フォームのDisposeについて
□投稿者/ 中博俊 神(334回)-(2006/02/17(Fri) 22:22:49)
中博俊 さんの Web サイト

分類:[VB.NET] 

されるでしょう。
不要でしょう。

でもね。。。。

Disposeは絶対にすべきことなんです。だから私はIDisposableなものの場合には必ず
(VB2005の場合)
Try Using(f as Form = new Form1()
f.Show()
f.Close()
End Using

のように明示的にDisposeが呼ばれるようにします。

0
引用返信 編集キー/
■2604 / inTopicNo.3)  Re[2]: フォームのDisposeについて
□投稿者/ しょうだい 二等兵(2回)-(2006/02/20(Mon) 11:51:04)

分類:[VB.NET] 

中博俊さん、ありがとうございます。
(返信が遅くなってすみません。)

私も明示的に Dispose するようにします。

モードレスで表示したフォームの場合は、その表示したフォームから Close した場合に
呼び出し元で Dispose するには、呼び出したフォームが Close されたかを監視して、
Dispose しなくてはいけないということですね。
ちなみに ShowDialog で表示した場合で、表示したフォームから Close した場合は、
Dispose メソッドが実行されませんね。


解決済み
引用返信 編集キー/
■2605 / inTopicNo.4)  Re[3]: フォームのDisposeについて
□投稿者/ trapemiya 伍長(43回)-(2006/02/20(Mon) 11:58:41)
trapemiya さんの Web サイト

分類:[VB.NET] 

ちょっと表現が微妙になってますが、簡単に言えば、

モードレスの場合はCloseで十分です。自動的に
Disposeが呼ばれます。
モーダルの場合はCloseしてもDisposeが呼ばれません。

解決済み
引用返信 編集キー/
■2606 / inTopicNo.5)  Re[4]: フォームのDisposeについて
□投稿者/ 名無しぃシャープ 伍長(55回)-(2006/02/20(Mon) 12:48:20)

分類:[VB.NET] 

No2605に返信(trapemiyaさんの記事)
> ちょっと表現が微妙になってますが、簡単に言えば、
>
> モードレスの場合はCloseで十分です。自動的に
> Disposeが呼ばれます。
> モーダルの場合はCloseしてもDisposeが呼ばれません。

そそ。

自分もShowメソッドの場合は特にDisposeは記述しない。
ShowDialogメソッドばかり使っているしw
兄弟フォームみたいな概念がゆるされるアプリケーションがあんまりない。
自分の場合はShowメソッドを使う場合はオーナーがちゃんといる。

みなさんはどうなんですか?

解決済み
引用返信 編集キー/
■2607 / inTopicNo.6)  Re[5]: フォームのDisposeについて
□投稿者/ 中博俊 神(339回)-(2006/02/20(Mon) 17:01:09)
中博俊 さんの Web サイト

分類:[VB.NET] 

Showあんまり使わないなぁ。
ShowDialogですねー

0
引用返信 編集キー/
■2608 / inTopicNo.7)  Re[6]: フォームのDisposeについて
□投稿者/ 名無しぃシャープ 伍長(56回)-(2006/02/20(Mon) 17:23:06)

分類:[VB.NET] 

No2607に返信(中博俊さんの記事)
> Showあんまり使わないなぁ。
> ShowDialogですねー

ねー。

使ってもOwner指定すればCloseは保証できますよねー。(多分)
え?違う?

0
引用返信 編集キー/
■2609 / inTopicNo.8)  Re[6]: フォームのDisposeについて
□投稿者/ しょうだい 二等兵(3回)-(2006/02/20(Mon) 17:31:08)

分類:[VB.NET] 

みなさん、ありがとうございます。

今回、MDIアプリケーションでMDI子フォームをShowした場合のDisposeについて
悩んでいました。
明示的にDisposeと思い、MDI親フォームのMainMenuコントロールから子フォーム
をCloseさせる場合にはその後にDisposeを入れたのですが、子フォーム側で自ら
Closeした時が困ったなぁと。
とりあえず、MDI親フォームがCloseする時にまとめてDisposeしています。


0
引用返信 編集キー/


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

このトピックに書きこむ

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

管理者用

- Child Tree -