Winform最小化到托盘

1. 添加控件NotifyIcon

(1)属性Icon:托盘图标。该属性必须要设置,否则无法显示托盘图标。

(2)属性Text:鼠标放在托盘图标上显示的文字。

(3)属性Visible:可以一直设为True,即程序运行之后就一直显示托盘图标;也可以在程序最小化到托盘时才显示托盘图标,即程序没有最小化到托盘时设为False,最小化到托盘时设为True。

(4)窗口的FormClosing事件:单击窗口的“X”按键,实现程序最小化到托盘。

private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
    //取消关闭窗口
    e.Cancel = true;
    //最小化主窗口
    this.WindowState = FormWindowState.Minimized;
    //不在系统任务栏显示主窗口图标
    this.ShowInTaskbar = false;
}

如果需要程序在最小化到托盘时,弹出提示气泡,只需要在FormClosing事件中添加:

private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
    //取消关闭窗口
    e.Cancel = true;
    //最小化主窗口
    this.WindowState = FormWindowState.Minimized;
    //不在系统任务栏显示主窗口图标
    this.ShowInTaskbar = false;
    //提示气泡
    notifyIcon1.ShowBalloonTip(2000, "最小化到托盘", "程序已经缩小到托盘,单击打开程序。", ToolTipIcon.Info);
}

(4)事件MouseClick或者Click:单击托盘图标,程序恢复。

private void notifyIcon1_MouseClick(object sender, MouseEventArgs e)
{
    if (e.Button == MouseButtons.Left)
    {
        if (this.WindowState == FormWindowState.Minimized)
        {
            //还原窗体
            this.WindowState = FormWindowState.Normal;
            //系统任务栏显示图标
            this.ShowInTaskbar = true;
        }
        //激活窗体并获取焦点
        this.Activate();
    }
}
2. 添加控件ContextMenuStrip

该控件不是必须的,根据自己的需要决定是否添加。ContextMenuStrip用于右键托盘图标,显示自定义功能列表。效果可以参考QQ的右键托盘图标,可以添加 打开主面板、退出、帮助以及功能之间的跳转等功能。

(1)NotifyIcon的属性ContextMenuStrip设置为该控件。

(2)自定义ContextMenuStrip的Items属性,向其中添加ToolStripMenuItem,每个ToolStripMenuItem还可以继续添加二级菜单。

(3)编写ToolStripMenuItem的Click事件。

如:添加退出功能,新增一个ToolStripMenuItem,设置属性Text的值为退出,编写Click属性。不能只是简单地写this.Close(),因为这会触发上面添加的FormClosing事件,这样会导致添加的退出实际上却是最小化到托盘。应该在this.Close()的前面添加this.Dispose(),即:

private void toolStripMenuItem1_Click(object sender, EventArgs e)
{
    this.Dispose();
    this.Close();
}

  • 8
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值