- PR -

FormのLoad処理について

1
投稿者投稿内容
PG初心者
会議室デビュー日: 2005/06/30
投稿数: 8
投稿日時: 2005-06-30 21:29
VB6からVB.NETへの移行でformのload処理に悩んでいます。
今までの処理をくずさずにしたいのですがわかりません。

VB6では以下の手順で画面遷移していました。

On Error Resume Next

Load Form1

If Err.Number = 0 Then
On Error GoTo 0
Form1.Show vbModal
Else
On Error GoTo 0
Exit Sub
End If

FormLoad時にエラーがでてもPGを終了しないようにOn Error Resume Nextをし、
loadが正常なら画面を表示し、load時にエラーがでれば表示処理を終了すると
いった形にしています。

VB.NETではフォームをロードするだけの関数や、メソッドなどがあるのでしょうか?

今までの処理を崩さないと言うことを前提に解決方法が
ありましたらよろしくお願いします。














たつごろー
ぬし
会議室デビュー日: 2004/10/25
投稿数: 496
投稿日時: 2005-07-01 00:35
たぶん、tryでいけますよ。
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/vbcn7/html/vaconTryCatchStatements.asp?frame=true


_________________
たつごろー
codeseek
こみゅぷらす
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2005-07-01 09:30
とりあえず、例外処理は、Try 〜 Catch 〜 Finally を使うようにしましょう。

引用:

VB.NETではフォームをロードするだけの関数や、メソッドなどがあるのでしょうか?


Load の変わりに、コンストラクタで初期化しておく。
その後、Show メソッド、または ShowDialog でしょう。



_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
rucio
ベテラン
会議室デビュー日: 2002/11/27
投稿数: 98
投稿日時: 2005-07-01 09:51
Loadだけしてくれる方法はないみたいですね。

あくまでLoadイベントにこだわるのならばLoadされる側のFormに次のようなPublicなメソッドを用意し、Loadの代わりにこのメソッドを呼び出すなどの対処法があります。

'▼Loadされる側
Public Sub PerformLoad()

Form2_Load(Me, Nothing)

End Sub

'▼Loadする側
Dim f As New Form2
f.PerformLoad

これだと、フォームの名前によってこのメソッドの内容を変えなければいけないです。(Form3_Load, Form4_Loadなど)
次のようにすると長くなりますがフォーム名によらずにLoadイベントプロシージャを呼び出すことができます。(ただし、既定以外のLoadイベントプロシージャの名前を使用している場合は呼び出せません。呼び出す方法ご存知の方いらっしゃいますか?)

Public Sub PerformLoad()

Me.GetType.GetMethod(Me.Name & "_Load", Reflection.BindingFlags.Instance Or Reflection.BindingFlags.NonPublic).Invoke(Me, New Object() {Me, Nothing})

End Sub
PG初心者
会議室デビュー日: 2005/06/30
投稿数: 8
投稿日時: 2005-07-01 10:55
たつごろーさん,じゃんぬねっとさん,rucioさん
いろいろな意見をありがとうございます。

一度教えてもらったやり方でしてみたいと思います。

また、ほかにもやり方があれば教えてください。
1

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