FORM_LOSTFOCUSを機能させるには?

解決


manabu  2003-03-19 20:08:06  No: 106359

form1とform2がありform1のcommandボタンを押すとform2が表示し、form1をクリックするとform2が消える様にしたいので、form2に
Frivate sub Form_LostFocus()
unload form2
end sub

と入力するとうまくいくのですが、form2にcommandボタン等を配置するとform2を表示させて、form1をクリックしても消えてくれません。どの様にしたらform2は消えてくれますか?教えてください。


たき  2003-03-19 20:36:06  No: 106360

Form_LostFocusイベントは
『フォームにフォーカスが当たっている状態』から
『別のオブジェクトにフォーカスが移った』時に発生するイベントです。

form2にコマンドボタンを貼り付けると、
form2が表示されたときにフォーカスが当たっているのは
form2に配置されたコマンドボタンになるため、
フォーカスがform1に移ってもForm_LostFocusイベントは発生しません。
ですので、form1のほうでform2をアンロードするようにしてみてください。
例(form1側に)
Private Sub Form_Click()
    Unload Form2
End Sub


manabu  2003-03-19 23:29:03  No: 106361

やはりそれしか方法がないのですね。
今その方法を仮にしているのですが、form1にimageとかcommandボタンが貼り付けてあるとそこをクリックしてもunload form2は実行されないんですよ(涙)
でもそれしかないのであれば我慢します。


たき  2003-03-20 00:00:38  No: 106362

それならばこういう方法はどうですか?
例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がアクティブでなくなった場合に必ずアンロードされてしまいますから。


manabu  2003-03-20 00:24:09  No: 106363

そうゆう方法もあったんですね(^o^)
それなら単純でいいですね。
thanks!!マジありがとう。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加