[VB.NET v1.1]
[WinXP Pro SP1]
Form1を最小化した際に、タスクトレイから自分を消し
タスクトレイにアイコンを表示させるというサンプルを作っています。
アイコンを右クリックした際のメニューに"Show Window"と"Exit"を用意し
Show Windowをクリックした場合再度Form1を表示させます。
「最小化か否かの判定の方法が・・・コレしか思いつきませんでした。」
本題は最小化した際の応答なのですが、タスクバーから削除されるのに暫らく時間が掛かります、
コレはどうにかならないものなのでしょうか?
最小化をクリック→ 10ms →タスクトレイにアイコン表示→ 2s → タスクバーから削除
という具合です。
'ContextMenu - Windowを再表示
Private Sub Taskbar_Show(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenuItem1.Click
Me.NotifyIcon1.Visible = False
Me.ShowInTaskbar = True
Me.WindowState = FormWindowState.Normal
End Sub
'ContextMenu - タスクトレイアイコンからAppを終了
Private Sub Taskbar_Exit(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenuItem3.Click
Me.NotifyIcon1.Visible = False
Application.Exit()
End Sub
'Form1 - フォーカスを失った場合・・・
Private Sub Form1_Deactivate(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Deactivate
If Me.WindowState = FormWindowState.Minimized Then
Me.NotifyIcon1.Visible = True
Me.ShowInTaskbar = False
End If
End Sub
DeactivateじゃなくてResizeでやってみては?
編集 削除返信ありがとうございます。
>>DeactivateじゃなくてResizeでやってみては?
試してみましたが変わりませんでした・・・TT;
普通にForm1にButtonを配置しClickイベントに
Me.NotifyIcon1.Visible = True
Me.ShowInTaskbar = False
を書き込めば、タスクバーからAppが削除されると共にタスクトレイに
アイコンが表示されるのですが、行き詰まりです。。