FormのLeaveイベントがうまく動かない

タグの編集
投稿者 トマト  (小学生) 投稿日時 2010/1/8 23:09:29
こんにちは。冬休みが終わってしまったトマトです。
今、タスクバーに常駐してクリックするとメイン画面を表示するソフトを開発しています。
メイン画面のForm1からフォーカスが外れた時に非表示にしたいのですが、うまくいきません。

失敗作1
Private Sub Form1_Leave(ByVal sender As System.ObjectByVal e As System.EventArgs) Handles MyBase.Leave
    Me.Visible = False
End Sub

失敗作2
Private Sub cLeave(ByVal sender As ObjectByVal e As EventArgs) Handles ToolStrip1.Leave, TextBox1.Leave
    If Not ToolStrip1.Focused AndAlso Not TextBox1.Focused Then
        Me.Visible = False
    End If
End Sub

次のコントロールがあります。
・ToolStrip1(ボタンが3つ)
・TextBox1(MSゴシック 72pt)
投稿者 もすもす  (小学生) 投稿日時 2010/1/9 05:46:00
失敗作1を2008でテストしましたが、TextBoxなどのコントロールではLeaveイベントが発生したものの、Formではなぜか発生しませんでした。なるべく使用を避けるべきといわれていますが、LostFocusイベントは発生したので、LostFocusイベントを使用するのも1つの手段ではないかと思います。その他に最適と思われるイベントがありましたら、どなたかご指摘をお願いします。
投稿者 (削除されました)  () 投稿日時 2010/1/9 06:48:59
(削除されました)
投稿者 brv  (社会人) 投稿日時 2010/1/9 09:18:47
確か、Deactivateイベントがあったはず(間違っていたらすみません)
投稿者 トマト  (小学生) 投稿日時 2010/1/10 03:24:14
LostFocusイベントではうまく動きませんでした。
Deactivateイベントでうまくいきました。
ありがとうございました。

もう1おたずねしたいのですが、アイコンをクリックしてVisibleがTrueになったForm1にフォーカスを持たせるにはどうしたらいいでしょうか?
Me.Focus ではうまくいきませんでした。(エラーも出ずに)
投稿者 トマト  (小学生) 投稿日時 2010/1/10 03:35:36
MSDNを見て解決しました。
Me.Activate を使いました。