Приложение C # для Windows не отображается в системном трее правильно - PullRequest
0 голосов
/ 14 декабря 2009

Я пытаюсь запустить приложение ac # winforms только в системном трее, но когда я использую следующие команды, он отображается в системном трее, но также отображается в виде маленькой строки заголовка чуть выше панели задач слева вверху кнопка запуска (windows xp)

Самое смешное, что это происходит только тогда, когда я запускаю приложение за пределами Visual Studio.

Кто-нибудь знает, что я делаю не так?

Конструктор или Form_Load ....

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

Ответы [ 3 ]

1 голос
/ 14 декабря 2009

Добавьте обработчик события для события Resize формы, который будет скрывать приложение, когда оно свернуто. Таким образом, он не появится на панели задач.

private void Form1_Resize(object sender, System.EventArgs e)
{
   if (FormWindowState.Minimized == WindowState)
      Hide();
}
0 голосов
/ 21 марта 2011
private void ntfIcon_MouseClick(object sender, MouseEventArgs e)
        {
            if (e.Button==MouseButtons.Left)
            {
                if (this.WindowState == FormWindowState.Minimized)
                {
                    this.Show();
                    this.WindowState = FormWindowState.Normal;
                }
                else
                {
                    this.WindowState = FormWindowState.Minimized;
                    this.Hide();
                }
            }
        }
0 голосов
/ 14 декабря 2009

Попробуйте это

this.Resize +=new EventHandler(Form1_Resize);
private void Form1_Resize(object sender, EventArgs e)
{
    if (this.WindowState == FormWindowState.Minimized)
    {
        this.Hide();
    }
}
...