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

 

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

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

C# 模仿QQ、MSN消息提示系列 三、實現多個提示效果

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

  

一、修改內容

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

 

 

作者:XuShen8314
出處:http://XuShen8314.cnblogs.com
本文版權歸作者和博客園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接,否則視爲侵權。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章