form1とform2がありform1のcommandボタンを押すとform2が表示し、form1をクリックするとform2が消える様にしたいので、form2に
Frivate sub Form_LostFocus()
unload form2
end sub
と入力するとうまくいくのですが、form2にcommandボタン等を配置するとform2を表示させて、form1をクリックしても消えてくれません。どの様にしたらform2は消えてくれますか?教えてください。
Form_LostFocusイベントは
『フォームにフォーカスが当たっている状態』から
『別のオブジェクトにフォーカスが移った』時に発生するイベントです。
form2にコマンドボタンを貼り付けると、
form2が表示されたときにフォーカスが当たっているのは
form2に配置されたコマンドボタンになるため、
フォーカスがform1に移ってもForm_LostFocusイベントは発生しません。
ですので、form1のほうでform2をアンロードするようにしてみてください。
例(form1側に)
Private Sub Form_Click()
Unload Form2
End Sub
やはりそれしか方法がないのですね。
今その方法を仮にしているのですが、form1にimageとかcommandボタンが貼り付けてあるとそこをクリックしてもunload form2は実行されないんですよ(涙)
でもそれしかないのであれば我慢します。
それならばこういう方法はどうですか?
例1
(FORM1側に)
Private Sub Form_Activate()
Unload Form2
End Sub
又は
例2
(FORM2側に)
Private Sub Form_Deactivate()
Unload Me
End Sub
Form1がクリックされた時(Form1がアクティブになった時)にのみ
Form2をアンロードする時は例1のほうがいいですね。
例2はForm2がアクティブでなくなった場合に必ずアンロードされてしまいますから。
そうゆう方法もあったんですね(^o^)
それなら単純でいいですね。
thanks!!マジありがとう。
ツイート | ![]() |