• winform程序 实现类似 qq 消息提醒功能实现


    Winform托盘NotifyIcon使用(类似QQ消息提示)

     

    Winform托盘NotifyIcon使用(类似QQ消息提示)

    概述:在做cti的过程中,需要在来电的时候在客户端弹出对应的客户信息,所以需要做一个托盘的客户端程序运行,当有来电的时候通过托盘图标的闪动(当然也可以加些音效)来提示坐席人员。这里我使用了NotifyIcon控件实现,主要步骤如下:

    第一步:在工具箱中找到NotifyIcon控件,将其拖入设计版面中,如图:

    第二步:设置相应的属性,如图:

    Icon表示在托盘显示的图片

    Text表示鼠标移上去的相应提示

    其他的属性这里就不详细说明了,具体用的时候可以去百度一下。

    第二步:设置事件,本人这里只用了click事件,当然也可以使用别的事件,看个人需求而定,代码:

    this.icoThread.Abort();//这是在之后定义的一个让托盘图标闪动的线程,当用户点击后停止闪动

    this.notifyIcon1.Icon = new Icon("ico/c.ico");//将初始化为原来没有闪动的图标

    this.Visible = true;//弹出MainForm

    this.WindowState = FormWindowState.Maximized;//最大化

    第三步:定义闪动的线程,代码:

    while (true)

    {

    this.notifyIcon1.Icon = new Icon("ico/bw.ico");

    Thread.Sleep(100);

    this.notifyIcon1.Icon = new Icon("ico/c.ico");

    Thread.Sleep(100);

    }

    这里就是不断的去交替两个图标即可,本人项目中用的是一个黑白的和一个彩色的,这样看上去就是闪动效果了。这个线程的Abort时在第二步中click事件中,开始闪动根据之前的概述应该在得到来电的时候(得到来电具体的说明这里不说),当然根据每个人的不同需求可以将其放在不同的地方启动,比如在socket编程中得到消息的时候启动等。

    第四步:在winform窗体最小化的时候展示出notifyicon控件,代码:

    private void MainForm_SizeChanged(object sender, EventArgs e)

    {

    if (this.WindowState == FormWindowState.Minimized)

    {

    this.Hide();//隐藏本窗体

    this.notifyIcon1.Visible = true;//展示出notifyicon控件

    }

    }

    这样就简单的实现了托盘的闪动效果了。

    对于不可控的事情,保持乐观; 对于可控的事情,保持谨慎
  • 相关阅读:
    Jenkins file一行代码部署.NET程序到K8S
    重新认识Docker Compose之Sidecar模式
    handycontrol中NumericUpDown无法显示自定义错误提示的解决办法
    InstallShield打包.net项目无法包含数据库、配置文件等
    CROSS APPLY & OUTER APPLY
    C# 取消文件隐藏并恢复标准文件
    C#播放音乐的几种方式
    QT 信号(槽)绑定的使用_connect
    基于TestStand和C#开发平台TTStand 2.5.3.2 Release
    Task 使用详细[基础操作,异步原则,异步函数,异步模式] 更新中...
  • 原文地址:https://www.cnblogs.com/baylor2019/p/12310859.html
Copyright © 2020-2023  润新知