- - PR -
FormのLoad処理について
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 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ではフォームをロードするだけの関数や、メソッドなどがあるのでしょうか? 今までの処理を崩さないと言うことを前提に解決方法が ありましたらよろしくお願いします。 | ||||
|
投稿日時: 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 こみゅぷらす | ||||
|
投稿日時: 2005-07-01 09:30
とりあえず、例外処理は、Try 〜 Catch 〜 Finally を使うようにしましょう。
Load の変わりに、コンストラクタで初期化しておく。 その後、Show メソッド、または ShowDialog でしょう。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||
|
投稿日時: 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 | ||||
|
投稿日時: 2005-07-01 10:55
たつごろーさん,じゃんぬねっとさん,rucioさん
いろいろな意見をありがとうございます。 一度教えてもらったやり方でしてみたいと思います。 また、ほかにもやり方があれば教えてください。 |
1