C# Windows应用程序中的NotifyIcon和Form.Resize事件

C# Windows应用程序中的NotifyIcon和Form.Resize事件,c#,winforms,systray,C#,Winforms,Systray,我正在尝试将winapp最小化到系统托盘。我已经从下载了一个示例项目。但它在形式上是系统的。调整事件大小。代码- private void Form_Resize(object sender, EventArgs e) { notifyIcon1.BalloonTipTitle = "Minimize to Tray App"; notifyIcon1.BalloonTipText = "You have successfully minimize

我正在尝试将winapp最小化到系统托盘。我已经从下载了一个示例项目。但它在形式上是系统的。调整事件大小。代码-

    private void Form_Resize(object sender, EventArgs e)
    {
        notifyIcon1.BalloonTipTitle = "Minimize to Tray App";
        notifyIcon1.BalloonTipText = "You have successfully minimized your form.";

        if (FormWindowState.Minimized == this.WindowState)
        {
            notifyIcon1.Visible = true;
            notifyIcon1.ShowBalloonTip(500);
            this.Hide();    
        }
        else if (FormWindowState.Normal == this.WindowState)
        {
            notifyIcon1.Visible = false;
        }
    }

是否有必要在调整大小事件时处理它?我可以在按钮单击事件中执行此操作吗?

您可以在按钮中执行此操作。由于明显的原因,您不能依赖按钮中的WindowsState,因为它只能在窗口未最小化到任务栏时单击

private void button1_Click(object sender, EventArgs e)
{
    notifyIcon1.BalloonTipTitle = "Minimize to Tray App";
    notifyIcon1.BalloonTipText = "You have successfully minimized your form.";

    notifyIcon1.Visible = true;
    notifyIcon1.ShowBalloonTip(500);
    this.Hide();
} 

这将有助于“最小化”对托盘的影响。虽然它实际上应该被称为“隐藏在按钮上”,但单击托盘。

Windows窗体不允许任何事件获得Windows状态更改(最小化、最大化或还原)的通知。如果你想隐藏你的窗口在最小化的时间,你想显示通知图标。然后,只有一个简单的方法来获取通知,即窗口是否最小化。但,若你们想显示通知图标,即使窗口并没有最小化,那个么你们可以简单地将这些代码放入表单加载中。