閉じるボタンをクリックするとトレイメニューに非表示になるようにするwinformsアプリケーションがあります。これでtrayiconとnotifyiconを使用しました。以下はコードです
システムトレイへの最小化用
public void MinimizeToTray()
{
try
{
this.WindowState = FormWindowState.Minimized;
TrayIcon.Visible = true;
TrayIcon.ShowBalloonTip(1000);
ShowInTaskbar = false;
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
//Load the tray menu
private void LoadTrayMenu()
{
TrayMenu.Items.Add("Exit");
TrayMenu.Items[0].Click += new System.EventHandler(this.Dispose_Click);
TrayIcon.ContextMenuStrip = TrayMenu;
}
//Close the application
private void Dispose_Click(object Sender, EventArgs e)
{
TrayIcon.Visible = false;
TrayIcon.Icon = null;
Application.Exit();
}
上記の部分は私にとってはうまく機能します。つまり、アプリケーションをトレイメニューに最小化してから、元のフォームにサイズ変更して閉じることができます。しかし、アプリケーションがシステム トレイに最小化されている場合、そのときに All-Tab を押すと、アプリケーションを表示できます。システムトレイからクリックする代わりに、アプリケーションを元のフォームに戻すことができます。
私はこれらの例を見ました
WinForms アプリケーションを通知領域に最小化するにはどうすればよいですか?
Alt-Tab プログラム スイッチャーからウィンドウを非表示にする最良の方法は?
しかし、アプリケーションがシステム トレイにあるときに、Alt-Tab スイッチャーからアプリケーションを非表示にする方法を示すものはありません。
アプリケーションがシステム トレイにないときに、Alt-Tab スイッチャーでアプリケーションが表示されていれば問題ありません。
どんな助けでもいただければ幸いです