[リストへもどる]
一括表示

投稿時間:2004/02/04(Wed) 13:43
投稿者名:kaka
URL :
タイトル:
フォームの制御
VBでform1からform2に制御を移しform2の処理終了後form1に戻るにはどうしたら良いですか。
form1
private sub command1_click()
   form2.show
   form2の処理後に処理する内容
   call ------
end sub

form2
private sub comannd1_click()
  処理
 me.hide
  form2に戻る
end sub
のようにしていますがform1でform2を表示した後勝手に下の処理をしてしまいます。

投稿時間:2004/02/04(Wed) 13:53
投稿者名:いちゆ
Eメール:
URL :
タイトル:
Re: フォームの制御
vbModalでForm2をShow。

投稿時間:2004/02/04(Wed) 14:00
投稿者名:ak
Eメール:
URL :
タイトル:
Re: フォームの制御
方法はいくつか考えられます。

1.Form2の処理後の処理が他で使用されていないのであればForm2に処理を記述する。

2.モーダルフォームにする。※最前面固定にしたくない場合には適しません。
    Private Sub Command1_Click()
        Form2.Show vbModal '←Form2が閉じられるまでここで処理が止まっている。
        'Form2の処理後に処理する内容
    End SuB

3.Form1内にグローバル関数を作りForm2から実行する。
    '(Form1.frm)
    Public sub AfterProc()
        'Form2の処理後に処理する内容    
    End Sub

    '(Form2.frm)
    Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
        Call Form1.AfterProc
    End Sub

個人的には3番目のやり方がお勧めです。

投稿時間:2004/02/04(Wed) 14:14
投稿者名:kaka
URL :
タイトル:
Re^2: フォームの制御
> 方法はいくつか考えられます。
>
> 1.Form2の処理後の処理が他で使用されていないのであればForm2に処理を記述する。
>
> 2.モーダルフォームにする。※最前面固定にしたくない場合には適しません。
>     Private Sub Command1_Click()
>         Form2.Show vbModal '←Form2が閉じられるまでここで処理が止まっている。
>         'Form2の処理後に処理する内容
>     End SuB



akさんいちゆさんありがとうございました。
大変助かりました。
>
> 3.Form1内にグローバル関数を作りForm2から実行する。
>     '(Form1.frm)
>     Public sub AfterProc()
>         'Form2の処理後に処理する内容    
>     End Sub
>
>     '(Form2.frm)
>     Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
>         Call Form1.AfterProc
>     End Sub
>
> 個人的には3番目のやり方がお勧めです。