Скрытие окна без границ в меню ALT+TAB

Я разрабатываю приложение Tray с Borderless Form, которое работает в фоновом режиме. если пользователь хочет выполнить различные операции, он может открыть контекстное меню, щелкнув правой кнопкой мыши значок в трее (NotifyIcon).

поэтому мои требования таковы:

1. Приложение всегда запускается в свернутом режиме, и отображается Traicon.
2. Приложение не должно отображаться на панели задач.
3. Приложение не должно быть видно из меню ALT+TAB.

Я реализовал два вышеупомянутых требования, но, пытаясь скрыть приложение из меню ALT+Tab, оно работает (не видно из ALT+TAB), но создает маленькое окантованное окно с заголовком приложения в левом боковом углу в верхней части панели задач, как показано ниже. образ:

Я хочу удалить это маленькое окаймленное окно.

Вот мой код:

    public Form1()
    {
        InitializeComponent();
        this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
        HideThisForm();
    }

    protected override CreateParams CreateParams
    {
        get
        {
            // Turn on WS_EX_TOOLWINDOW style bit
            CreateParams cp = base.CreateParams;
            cp.ExStyle |= 0x80;
            return cp;
        }
    }

    private void HideThisForm()
    {

        this.ShowInTaskbar = false;
        this.WindowState = FormWindowState.Minimized;
        this.Hide();

        notifyApp.Visible = true;
        notifyApp.ShowBalloonTip(2000, "BackgroundApp", 
                    "This APP is running @ Background", ToolTipIcon.Info);
    }

PS: я просмотрел несколько похожих постов в Stackru, но ни один из них не сталкивался с подобной проблемой.

2 ответа

Решение

Я сделал это перед использованием this.Opacity=0;, Отчасти хакерский, но с WinForms это может быть единственный выход.

Если у вас есть форма без полей, то есть FormBorderStyle.None, то ShowInTaskbar = False не работает. Итак, мы должны установить WS_EX_TOOLWINDOW в значение true в дополнение к Me.ShowInTaskbar = False.

Это не от меня, а от этого: http://www.codeproject.com/Tips/135076/Hiding-the-form-from-alt-tab-menu

Вы всегда можете попытаться установить borderstyle на то, что вы хотите, когда форма становится видимой (и повернуть его обратно, когда вы потеряете фокус)

Другие вопросы по тегам