redwarrior’s diary

C#, ASP.NET, WEB, G*などの雑多な情報

(小ネタ)WindowsフォームでShowDialogメソッド、Showメソッド、Closeメソッド、Disposeメソッドの動作を理解する。

Windowsフォームアプリケーションのソースコードを見ていて、ShowDialogメソッド、Showメソッド、Closeメソッド、Disposeメソッドの動作の理解があいまいだったので調べました。

ShowDialogメソッド

フォームクラスのShowDialogメソッドを実行すると、画面が表示され、メソッドを実行した位置で処理はストップし、画面を閉じるまで処理は先に進まない。Closeメソッドの実行は、画面を閉じるのと同じ動作になる。

画面を閉じてもオブジェクト(リソース)が解放されるわけではないので、フォームクラスのフィールドから値を取得できる。オブジェクト(リソース)を解放するためには、Disposeメソッドを実行する。

Showメソッド

フォームクラスのShowメソッドを実行すると、画面が表示されるが、処理は止まらず先に進む。

画面を閉じる、もしくはCloseメソッドを実行をすると、オブジェクト(リソース)が解放される。そのためDisposeメソッドを呼ぶ必要が無い。

以下のサイトを参考にしました。