tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板) [ツリー表示へ]   [Home]
一括表示(VB.NET VB2005)
タイトルフォームの初期化
記事No5392
投稿日: 2007/04/22(Sun) 17:59
投稿者なゆた
WinXP + VB2005

フォームの初期化は皆さんどこに書いているのでしょうか?
Form_Loadでいいのでしょうか?それともNew?

New()とForm_Loadの違いは何でしょう?

また、終了時の処理はどこへ書けばいいのですか?
FormClosing?、FormClosed?、Finalize?

vb6.0に比べイベントがやたら増えてるのでどこに書いていいものなのか…

[ツリー表示へ]
タイトルRe: フォームの初期化
記事No5398
投稿日: 2007/04/23(Mon) 22:09
投稿者なおこ(・∀・)
お世話になります。

> WinXP + VB2005
> vb6.0に比べイベントがやたら増えてるのでどこに書いていいものなのか…

初期化と一口にいっても、具体的にどういう時にどういうことをやりたいかによって
適切なイベントやメソッドが異なると思います。
↓に張った MSDN を見るなり、
それぞれのイベント等で System.Diagnostics.Debug.WriteLine 等で任意の文字を出力して
どのようなタイミングで発生するか研究したりするとよいのではないでしょうか。

コンストラクタ(New)
http://msdn.microsoft.com/library/ja/default.asp?url=/library/ja/vbls7/html/vblrfvbspec7_2
.asp

Form.Load イベント
http://msdn2.microsoft.com/ja-jp/library/system.windows.forms.form.load(VS.80).aspx

Form.Shown イベント
http://msdn2.microsoft.com/ja-jp/library/system.windows.forms.form.shown(vs.80).aspx

Form.FormClosing イベント
http://msdn2.microsoft.com/ja-jp/library/system.windows.forms.form.formclosing(vs.80).aspx

Form.FormClosed イベント
http://msdn2.microsoft.com/ja-jp/library/system.windows.forms.form.formclosed(VS.80).aspx

Object.Finalize メソッド
http://msdn2.microsoft.com/ja-jp/library/system.object.finalize(VS.80).aspx

[ツリー表示へ]
タイトルRe^2: フォームの初期化
記事No5403
投稿日: 2007/04/24(Tue) 11:06
投稿者るしぇ
# ずっと[VB.NET2003]を使ってます。その知識で回答してます。

[Visual Basic 6.0 ユーザーのための Visual Basic .NET 移行ガイド]
http://www.microsoft.com/japan/msdn/net/vbtransitionguide/chapter5/chapter5_2.aspx

コンストラクタを意識するならデストラクタも?
[Form.Dispose メソッド]
http://msdn2.microsoft.com/ja-jp/library/system.windows.forms.form.dispose(VS.80).aspx
の紹介もあった方が良いですかねぇ?

Form もクラスだし、初期化処理は共通して New に書くようにしてます。
Form を閉じる時の処理はキャンセルする場合が多いので FormClosing イベント。
リソース解放に関係していれば Dispose を使ってます。
# [VB.NET2003]の場合、自動で New と Dispose のコードが書かれます。そのまま
# 利用しています。

終了処理が必要なものは、使い終わった時点で実行するように心掛けているので、
フォームを閉じる時の処理が必要になる事は少ないです。

[ツリー表示へ]
タイトルRe^3: フォームの初期化
記事No5412
投稿日: 2007/04/25(Wed) 09:27
投稿者なゆた
なおこ(・∀・)様、るしぇ様、ありがとうございます。
少しづつですが勉強していきます。

[ツリー表示へ]