【问题标题】:NotifyIcon and Form.Resize event in Windows applicationWindows 应用程序中的 NotifyIcon 和 Form.Resize 事件
【发布时间】:2014-03-12 05:56:38
【问题描述】:

我正在尝试将我的 winapp 最小化到系统托盘。我从codeproject 下载了一个示例项目。但它会在 Form.Resize 事件上转到 systary。代码 -

    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;
        }
    }

是否有必要在调整大小事件时处理它?我可以在按钮点击事件中这样做吗?

【问题讨论】:

  • Windows 窗体不允许任何事件获取有关 Windows 状态更改(最小化、最大化或恢复)的通知。如果您想在最小化时隐藏您的窗口,并且您想显示通知图标。那么只有简单的方法来获取通知是您的窗口是否最小化。但是,如果您想显示通知图标,即使窗口没有最小化,那么您只需将这些代码放入表单加载中。

标签: c# winforms systray


【解决方案1】:

您可以在按钮中执行此操作。由于显而易见的原因,您不能依赖按钮中的 WindowState,因为只有在窗口没有最小化到托盘时才能单击它。

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();
} 

这应该可以“最小化”到托盘。虽然它真的应该被称为 hide-on-button-click-to-tray。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-25
    相关资源
    最近更新 更多