C# 【多线程+队列】【附源码】 实现右下角的消息提示框,支持同时显示多个提示框

本文介绍了一个简单实用的多线程提示框工具,支持消息队列管理和自定义配置,如提示框重叠、显示数量限制等。适用于需要频繁显示提示信息的应用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

---------------------------------------------2013年5月2日------------------------------------------------------------------------------------------------------------------------------

今天修改了紧急通知不优先的bug,增加了关闭窗口时会调整存活窗口的位置等问题,但是还没经过全面的测试,需要的朋友请等等,明天(5月3)日我去测试好了就发链接出来。

最新修改的下载地址(之前未修改的在此文底部有下载地址):http://download.youkuaiyun.com/detail/juyangjia/5323339


---------------------------------------------2013年4月28日------------------------------------------------------------------------------------------------------------------------------

最近在公司做一个简单的采集数据的程序,我没事自己边网上百度边做,做了这个提示信息的小工具,送给新人吧,希望大家下载了看了学了之后,以后自己写了什么好东西呢也不要藏着,毕竟开放才能成长嘛。

我承认有些地方写得不好。。。很傻,我第一次写多线程。很多东西都不会,新手看看就行了

用了队列和多线程,可以同时show 多个提示框,但是会根据设置同时显示的提示框数量不会超过设置的值,超过的将在前面显示的框被关闭或自动关闭之后继续显示。

 

先看效果图,后面继续讲:

 

此图为就是提示框的overlap设置为false

 

 

此图为overlap设置为true,所有通知都会在一起,后面弹出遮挡前面弹出

 

 

一、先说说原理:1.将要显示的消息添加到队列,并释放信号量

                        2.独立的线程接收到信号量释放通知,代表“有消息需要显示”,它就去取出来显示。

 

二、使用方法:最简使用方式就是使用NoticeCenter类的Show()方法

                             1. 配置提示框属性(不配置有默认值)

             // 自定义配置方式1 

             NoticeCenter.Cfg.Height = 140;//弹出框高 
               NoticeCenter.Cfg.Width = 250;//弹出框宽 
               NoticeCenter.Cfg.Overlap = false;//弹出框是否重叠,true时弹出的框位置一致,后面弹出的将遮挡前面弹出的 
               NoticeCenter.Cfg.TotalShow = 5;//同一时刻显示几个提示框,如果超出5个,该线程将等待前面的线程释放 
  
               //自定义配置方式2 
             NoticeCenter.Cfg=new NoticeCfg{Height=140,Width=250,TotalShow=5,Overlap=false}; 

 

                            2. 实例化1个或多个“提示信息类”,即实例化一个需要提示给用户的通知( Notice ) , notice一共有3个属性,解释如下:

            //1.提示信息,wait默认值为5000             
            Notice notice_1 = new Notice { msg = "   这是一个测试试试试试试试试试试试试试" };              
            //2.wait表示3000毫秒后提示框开始释放(关闭)             
            Notice notice_2 = new Notice { msg = "   这是一个测试试试试试试试试试试试试试", wait = 3000 };               
            //3.detail里的内容就是用户点击“查看详细”时弹出的框中显示的内容,用于弹出框不适合显示太多文本用一个详细窗口来显示具体内容                     
            Notice notice_3 = new Notice { msg = "   这是一个测试试试试试试试试试试试试试", wait = 3000, detail = "点击查看详细时将显示detail设置的内容,如果不设置则默认显示msg的内容" };   

                            3. 调用通知的show()

            NoticeCenter.Show(notice_3);//将要弹出的消息放入队列,待轮到该提示弹出时将弹出             
            //NoticeCenter.Show(notice_3,true);//第二个参数为true代表“紧急”,会将消息放入队列首,优先弹出

 

 

源码:

http://download.youkuaiyun.com/detail/juyangjia/5308805

 

欢迎下载

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值