1. 程式人生 > >C# 模仿QQ、MSN訊息提示系列 四、bug修改 效果優化

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

    

一、修改內容

1、引用封送類異常提示

出現原因 Point 屬性屬於引用封送類

修改方法:

原來使用 public Point EndPoint; 屬性獲取下一個提示窗口出現的位置於是改為

publicint Y
        {
            
get { returnthis.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停止運動,離開後繼續當前行為

作者:XuShen8314
出處:http://XuShen8314.cnblogs.com
本文版權歸作者和部落格園共有,歡迎轉載,但未經作者同意必須保留此段宣告,且在文章頁面明顯位置給出原文連線,否則視為侵權。