您的位置:首页 > 编程语言 > C#

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

2008-12-13 01:03 621 查看
一、修改内容

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停止运动,离开后继续当前行为



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

作者:徐沈
出处:http://XuShen8314.cnblogs.com
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则视为侵权。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: