|
> If Me.Visible = True AndAlso System.Windows.Forms.Form.ActiveForm IsNot Me Then > Me.Activate() > 'ここで消えてしまいます。 > End If > If Me.Visible = True Then > Me.Visible = False > ’消えます
どっちも「Me.Visible = Trueなら」だから、まずMe.Activate()を実行してから次のIf Me.Visible = True Then Me.Visible = Falseを実行しているみたいですね。でもIf System.Windows.Forms.Form.ActiveForm IsNot Me ThenだけだとMe.Activate()してくれないので、Me.Visible = Trueはいるみたいですし。
で、もう妥協しました。何にしろIf Me.Visible = True AndAlso System.Windows.Forms.Form.ActiveForm IsNot Me ThenがあるせいでIf Me.Visible = True Then Me.Visible = Falseがなぜか分かりませんが動かないのなら、今までMouseClickのところにこれらを書いていたのですが、そこのIf Me.Visible = True Then Me.Visible = Falseを消して、別の場所に
Private Sub NotifyIcon1_MouseDoubleClick(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles NotifyIcon1.MouseDoubleClick If Me.Visible = True Then Me.Visible = False End If End Sub
を作りました。ちゃんと動作しました。 そもそも、最初に、つまりIf Me.Focused Thenと書いていた時はちゃんとあのコードは動作したんですよね。で、さてビルドするかと最終チェックしていたらもう動かないことに気付いたんです。あの後追加したコードで、NotifyIconに何か干渉するものが果たしてあったのでしょうか……謎です。
|