我有一个winforms应用程序,当单击close按钮时,我将它隐藏在托盘菜单中。我在这里使用了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,我就可以查看该应用程序。使用它可以将应用程序带回到原始表单,而不是从系统托盘中点击。
我已经看过这些例子了
How do I minimize a WinForms application to the notification area?
Best way to hide a window from the Alt-Tab program switcher?
但它们都没有说明当应用程序在系统托盘中时,如何在Alt-Tab切换器中隐藏应用程序。
当应用程序不在系统托盘中时,如果应用程序在Alt-Tab切换器中可见,则没有问题。
任何帮助都将不胜感激
发布于 2014-02-28 20:41:13
正如我的注释中所述,使用Show()和Hide()。创建一个新表单,添加一个按钮,双击该按钮并添加button1_Click代码。我在Windows7 x64上使用的是C# (.NET 4),Visual Studio2012。
工作正常。窗口既不显示在Alt+Tab中,也不显示在Win+Tab中。
using System;
using System.Drawing;
using System.Windows.Forms;
namespace TrayIconExample
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private NotifyIcon icon;
private void button1_Click(object sender, EventArgs e)
{
icon = new NotifyIcon
{
Icon = new Icon(@"C:\Program Files (x86)\Winspector\class-icons\#32768.ico"),
Visible = true
};
Hide();
}
}
}我将Show()部分留给您。
https://stackoverflow.com/questions/22091668
复制相似问题