应用程序启动时,Hide()不起作用

时间:2016-04-20 13:13:52

标签: c# winforms taskbar system-tray notifyicon

我正在开发一个应用程序,它最小化并在系统托盘上显示一个通知图标。

当应用程序运行并且我最小化它时,表单在Resize事件中运行Hide()方法以隐藏窗口并且它可以工作(窗口在任务栏中隐藏并在系统托盘上显示通知图标)。问题是应用程序启动时。它配置为最小化运行。

启动时,系统托盘图标出现,窗口显示为最小化,但显示在任务栏中。

有什么问题?

这是Resize事件:

    private void frmMain_Resize(object sender, EventArgs e)
    {
        if (this.WindowState == FormWindowState.Minimized)
        {
            Hide();
            notifyIcon.Visible = true;
            notifyIcon.ShowBalloonTip(200);
        }
    }

2 个答案:

答案 0 :(得分:0)

我尝试将所有代码放入Load事件而不是Resize:

private void frmMain_Load(object sender, EventArgs e)
{
    if (this.WindowState == FormWindowState.Minimized)
    {
        Hide();
        notifyIcon.Visible = true;
        notifyIcon.ShowBalloonTip(200);
    }
}

调整大小事件仅在手动调整应用程序大小时调用(我明白了当你单击最小化按钮但它在启动时没有工作的原因)。

答案 1 :(得分:0)

试试这个

namespace WindowsFormsApplication2
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Resize(object sender, EventArgs e)
        {
            HideWindow();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            HideWindow();
        }

        private void HideWindow()
        {
            if (this.Visible == true)
            {
                if (this.WindowState == FormWindowState.Minimized)
                {
                    this.Hide();
                }
            }
        }
    }
}