Как скрыть окно с переключателя Alt-Tab?

У меня есть приложение 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, когда приложение не находится в системном трее.

Любая помощь будет оценена


person Vikneshwar    schedule 28.02.2014    source источник
comment
Вы просто сворачиваете ... Это все равно что щелкнуть значок _ в окне. Вместо этого используйте Hide() и Show().   -  person Thomas Weller    schedule 28.02.2014
comment
@ThomasW. если я это сделаю, я даже не смогу увидеть значок на панели задач.   -  person Vikneshwar    schedule 28.02.2014


Ответы (1)


Как указано в моем комментарии, используйте Show () и Hide (). Создайте новую форму, добавьте кнопку, дважды щелкните кнопку и добавьте код button1_Click. Я использую C # (.NET 4), Visual Studio 2012 в Windows 7 x64.

Работает отлично. Окна не отображаются ни в 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 ().

person Thomas Weller    schedule 28.02.2014