C#实现闪动托盘

namespace NotifyIconDemo

{

    public partial class FrmMain : Form

    {

        //切换图片的标识

        private bool iconFlag = false;

        //系统是否运行

        private bool isRun = false;

        ///<summary>

        ///

        ///</summary>

        public FrmMain()

        {

            InitializeComponent();

            //设置icon显示的图片

            this.setIconImg(0);

        }

        ///<summary>

        ///设置托盘显示的图标

        ///</summary>

        ///<param name="index">图像列表中图片的索引</param>

        private void setIconImg(int index)

        {

            Image img = this.imgIcon.Images[index];

            Bitmap b = new Bitmap(img);

            Icon icon = Icon.FromHandle(b.GetHicon());

            this.niMain.Icon = icon;

        }

        ///<summary>

        ///显示主窗体

        ///</summary>

        ///<param name="sender"></param>

        ///<param name="e"></param>

        private void tsmiMain_Click(object sender, EventArgs e)

        {

            //显示主窗体

            this.Visible = true;

            this.WindowState = System.Windows.Forms.FormWindowState.Normal;

            //隐藏托盘图标

            this.niMain.Visible = false;

            this.Show();

        }

        ///<summary>

        ///退出

        ///</summary>

        ///<param name="sender"></param>

        ///<param name="e"></param>

        private void tsmiExit_Click(object sender, EventArgs e)

        {

            //设置托盘的提示信息

            this.niMain.BalloonTipText = "成功退出Demo!";

            this.niMain.BalloonTipTitle = "退出";

            this.niMain.ShowBalloonTip(1000*3);

            //延迟退出

            Thread.Sleep(1000 * 2);

            //释放托盘图标资源

            this.niMain.Dispose();

            //终止线程

            Application.ExitThread();

        }

        ///<summary>

        ///最小化时隐藏窗体,显示托盘图标

        ///</summary>

        ///<param name="sender"></param>

        ///<param name="e"></param>

        private void FrmMain_SizeChanged(object sender, EventArgs e)

        {

            if (this.WindowState == FormWindowState.Minimized)

            {

                this.Hide();

                this.niMain.Visible = true;

            }

        }

        ///<summary>

        ///关闭窗体时隐藏窗体显示托盘图标

        ///</summary>

        ///<param name="sender"></param>

        ///<param name="e"></param>

        private void FrmMain_FormClosing(object sender, FormClosingEventArgs e)

        {

            e.Cancel = true;

            this.Hide();

            //this.ShowInTaskbar = false;//取消窗体在任务栏的显示

            this.niMain.Visible = true;

        }

        ///<summary>

        ///加载窗体时隐藏窗体

        ///</summary>

        ///<param name="sender"></param>

        ///<param name="e"></param>

        private void FrmMain_Load(object sender, EventArgs e)

        {

            this.Hide();

        }

        ///<summary>

        ///定时器切换图标显示

        ///</summary>

        ///<param name="sender"></param>

        ///<param name="e"></param>

        private void tmrIcon_Tick(object sender, EventArgs e)

        {

            if (!this.isRun)

            {

                return;

            }

            if (iconFlag)

            {

                this.setIconImg(1);

                iconFlag = !iconFlag;

            }

            else

            {

                this.setIconImg(2);

                iconFlag = !iconFlag;

            }

        }

        ///<summary>

        ///点击运行菜单

        ///</summary>

        ///<param name="sender"></param>

        ///<param name="e"></param>

        private void tsmiRun_Click(object sender, EventArgs e)

        {

            this.tsmiRun.Enabled = false;

            this.tsmiStop.Enabled = true;

            //设置运行状态

            this.isRun = true;

        }

        ///<summary>

        ///点击停止菜单

        ///</summary>

        ///<param name="sender"></param>

        ///<param name="e"></param>

        private void tsmiStop_Click(object sender, EventArgs e)

        {

            this.tsmiRun.Enabled = true;

            this.tsmiStop.Enabled = false;

            //设置为停止状态

            this.isRun = false;

            //恢复图标显示

            this.setIconImg(0);

        }

    }

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Zwarwolf

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值