C# 模仿QQ、MSN消息提示系列 一、基本原理

C# 模仿QQ、MSN消息提示系列 二、基本效果模仿包含代码

C# 模仿QQ、MSN消息提示系列 三、实现多个提示效果

C# 模仿QQ、MSN消息提示系列 四、bug修改 效果优化

C# 模仿QQ、MSN消息提示系列 五、改进 只使用两个时间控件

 

  

一、修改内容

1、引用封送类异常提示

出现原因 Point 属性属于引用封送类

修改方法:

原来使用 public Point EndPoint; 属性获取下一个提示窗口出现的位置于是改为

 

public int Y
        {
            
get { return this.EndPoint.Y; }
        }

 

问题解决

 

2、每次当多个提示弹出的时候,从第二个开始每个窗口的高度都比背景的高度多2像素

出现原因:form窗体的Height默认最小值为2

所以得等到窗体移动两像素后开始同步窗体的移动位置和大小

 

if (this.moveCount > 2)
{
   
this.Height++;
}

 

3、同时显示多个窗口时cpu占用大的问题

分析原因:可能是System.windows.Forms.Timer控件的问题

于是把控件全部换成 System.Threading.Timer

结果:问题没有解决,并且在多线程调用窗体时有时会出现异常(几率不大)

 

继续等待牛人解决这个问题

 

二、归纳知识点

做完这个小的Demo可以学到如下知识点:

1、Form窗体的位置操作原理

2、窗口之间的互相调用的方法

3、System.Threading.Timer的用法包括 开始,终止

4、异步线程操作窗口内容(需要写好相关调用Delegate并且调用相关控件的Invoke方法)

 

三、功能汇总及总体效果图

1、实现多提示,并能自动根据当前活动窗体判断下一窗体出现位置

2、鼠标悬停,当鼠标在form上面时Form停止运动,离开后继续当前行为

C# 模仿QQ、MSN消息提示系列 四、bug修改 效果优化

 

 

 下载地址:WindowsMoveDemo2008-07-30.rar

 

 

相关文章:

  • 2021-06-22
  • 2021-06-06
  • 2021-09-29
  • 2021-07-25
  • 2021-07-25
  • 2021-08-09
猜你喜欢
  • 2021-05-23
  • 2022-12-23
  • 2022-12-23
  • 2021-11-01
  • 2022-12-23
  • 2022-12-23
  • 2021-10-20
相关资源
相似解决方案