C#NotifyIcon 来一条消息 就多一个ico

liutian1234567890 2015-06-23 10:51:44
最近用C#做了一个聊天工具现在有一个问题就是来一条消息ico的图标就多一个闪烁,而我想要的效果是不管来多少条消息都在一个ico闪烁,就像qq那样,有哪位前辈可以指导一下,小生感激不尽!!!!
...全文
283 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
liutian1234567890 2015-06-23
  • 打赏
  • 举报
回复
引用 14 楼 Z65443344 的回复:
引用 12 楼 liutian1234567890 的回复:
[quote=引用 9 楼 Z65443344 的回复:] [quote=引用 7 楼 liutian1234567890 的回复:] [quote=引用 6 楼 Z65443344 的回复:] 判断一下呗.如果已经有一个ico在闪动了,就不管别的消息了呗
那不行吧,这样不就丢包了吗,
怎么是丢包呢 数据来了,你肯定是要先存放在一个集合里的,然后前台显示是根据后台的数据来显示 数据归数据,显示归显示,不要把控件作为数据源来存放数据[/quote]恩,我是要建立一个buffer还是,放在string里就好了,还是。。恩,能不能将在来的消息显示为一列的呢,就像qq那样鼠标移过去在ico那会变成类似任务栏一列的显示来的消息,[/quote] 肯定是放到集合里,比如List<string>,或者DataTable 你这个集合不仅要存放信息,还要存放到底信息是谁发来的,所以一维数组基本都可以不用考虑了,至少是二维数组[/quote]嗯呢,谢谢,
於黾 2015-06-23
  • 打赏
  • 举报
回复
引用 12 楼 liutian1234567890 的回复:
引用 9 楼 Z65443344 的回复:
[quote=引用 7 楼 liutian1234567890 的回复:] [quote=引用 6 楼 Z65443344 的回复:] 判断一下呗.如果已经有一个ico在闪动了,就不管别的消息了呗
那不行吧,这样不就丢包了吗,
怎么是丢包呢 数据来了,你肯定是要先存放在一个集合里的,然后前台显示是根据后台的数据来显示 数据归数据,显示归显示,不要把控件作为数据源来存放数据[/quote]恩,我是要建立一个buffer还是,放在string里就好了,还是。。恩,能不能将在来的消息显示为一列的呢,就像qq那样鼠标移过去在ico那会变成类似任务栏一列的显示来的消息,[/quote] 肯定是放到集合里,比如List<string>,或者DataTable 你这个集合不仅要存放信息,还要存放到底信息是谁发来的,所以一维数组基本都可以不用考虑了,至少是二维数组
於黾 2015-06-23
  • 打赏
  • 举报
回复
引用 11 楼 liutian1234567890 的回复:
[quote=引用 10 楼 Z65443344 的回复:] 好比串口调试助手 里面有关闭串口,还有停止显示的选项 关闭串口当然就是不接收数据了 然而停止显示只不过是数据来了先存放在后台变量里,而不显示到前台控件,这样不会因为控件一直不断的刷新数据而看不清楚
恩恩,好深奥啊!是不是将后来的好友聊天消息先存储起来,等前面的聊天显示完之后再显示呢?[/quote] 聊天内容肯定是等打开聊天窗口才显示,跟闪动没有任何关系 除了右下角图标闪动,正常每个人的头像都有闪动的,那个就是谁发来新消息谁就闪动了 而右下角的闪动,只显示第一个人的头像就可以,等你把第一个人的聊天窗口打开了,再判断是否还有其他人的信息没有显示,那个时候再变成其他人的头像
liutian1234567890 2015-06-23
  • 打赏
  • 举报
回复
引用 9 楼 Z65443344 的回复:
引用 7 楼 liutian1234567890 的回复:
[quote=引用 6 楼 Z65443344 的回复:] 判断一下呗.如果已经有一个ico在闪动了,就不管别的消息了呗
那不行吧,这样不就丢包了吗,
怎么是丢包呢 数据来了,你肯定是要先存放在一个集合里的,然后前台显示是根据后台的数据来显示 数据归数据,显示归显示,不要把控件作为数据源来存放数据[/quote]恩,我是要建立一个buffer还是,放在string里就好了,还是。。恩,能不能将在来的消息显示为一列的呢,就像qq那样鼠标移过去在ico那会变成类似任务栏一列的显示来的消息,
liutian1234567890 2015-06-23
  • 打赏
  • 举报
回复
引用 10 楼 Z65443344 的回复:
好比串口调试助手 里面有关闭串口,还有停止显示的选项 关闭串口当然就是不接收数据了 然而停止显示只不过是数据来了先存放在后台变量里,而不显示到前台控件,这样不会因为控件一直不断的刷新数据而看不清楚
恩恩,好深奥啊!是不是将后来的好友聊天消息先存储起来,等前面的聊天显示完之后再显示呢?
於黾 2015-06-23
  • 打赏
  • 举报
回复
好比串口调试助手 里面有关闭串口,还有停止显示的选项 关闭串口当然就是不接收数据了 然而停止显示只不过是数据来了先存放在后台变量里,而不显示到前台控件,这样不会因为控件一直不断的刷新数据而看不清楚
於黾 2015-06-23
  • 打赏
  • 举报
回复
引用 7 楼 liutian1234567890 的回复:
引用 6 楼 Z65443344 的回复:
判断一下呗.如果已经有一个ico在闪动了,就不管别的消息了呗
那不行吧,这样不就丢包了吗,
怎么是丢包呢 数据来了,你肯定是要先存放在一个集合里的,然后前台显示是根据后台的数据来显示 数据归数据,显示归显示,不要把控件作为数据源来存放数据
liutian1234567890 2015-06-23
  • 打赏
  • 举报
回复
引用 4 楼 caozhy 的回复:
难道你创建了很多notifyicon?
没有啊,就一个, public void messtime_Tick(object sender, EventArgs e) { if (!flag) { this.nfimess.Icon = Icon.ExtractAssociatedIcon( @"..\..\image\niuniu.ico"); } else { this.nfimess.Icon = Icon.ExtractAssociatedIcon(@"..\..\image\kongbai.ico"); } flag = !flag; }这是timer事件 public void nfimess_Click(object sender, EventArgs e) { this.Show(); this.rtbmessagesend.Focus(); this.Activate(); this.messtime.Enabled = false; this.nfimess.Visible = false; }这是接收事件
liutian1234567890 2015-06-23
  • 打赏
  • 举报
回复
引用 6 楼 Z65443344 的回复:
判断一下呗.如果已经有一个ico在闪动了,就不管别的消息了呗
那不行吧,这样不就丢包了吗,
於黾 2015-06-23
  • 打赏
  • 举报
回复
判断一下呗.如果已经有一个ico在闪动了,就不管别的消息了呗
liutian1234567890 2015-06-23
  • 打赏
  • 举报
回复
引用 2 楼 xiaoxin3357 的回复:
可能是你new了多了ico吧
没有new啊,只是让两个图片变换形成闪动啊!
threenewbee 2015-06-23
  • 打赏
  • 举报
回复
难道你创建了很多notifyicon?
liutian1234567890 2015-06-23
  • 打赏
  • 举报
回复
引用 1 楼 caozhy 的回复:
不知道你怎么做的闪烁,正确的做法是,做一个定时器,准备空白和正常图标两个图标,在定时器中切换。 收到消息就启用定时器。
恩恩,是的,我是这样做的,道理上应该是不管来多少个人的消息都在一个ico闪烁,可现在是来一条消息就有一个ico闪烁,有多少个人的消息就有多少个ico在闪,拿qq来说,就是有几个好友来消息现在就有几个闪动的ico,很郁闷,如何才能做成像qq那样不管来几个好友的消息都在一个ico闪动呢???
万婷 2015-06-23
  • 打赏
  • 举报
回复
可能是你new了多了ico吧
threenewbee 2015-06-23
  • 打赏
  • 举报
回复
不知道你怎么做的闪烁,正确的做法是,做一个定时器,准备空白和正常图标两个图标,在定时器中切换。 收到消息就启用定时器。

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧