自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

C# MSN Messenger的窗口的實(shí)現(xiàn)淺析

開發(fā) 后端
C# MSN Messenger的窗口的實(shí)現(xiàn)主要向你介紹了要實(shí)現(xiàn)的效果以及具體的步驟和期間的注意事項(xiàng),希望對(duì)你了解和學(xué)習(xí)C# MSN Messenger的窗口的實(shí)現(xiàn)有所幫助。

C# MSN Messenger的窗口的實(shí)現(xiàn)是指什么呢?大家一定都用過MSN Messager了吧?每當(dāng)有新郵件或者是新消息到來的時(shí)候,MSN Messager便會(huì)從右下角升起一個(gè)小窗口提醒您,然后又降下去。當(dāng)你在聚精會(huì)神的在電腦上做一件事的時(shí)候,一定不會(huì)喜歡突然被"咚"一下出現(xiàn)在屏幕中心的對(duì)話框打擾,它的這種設(shè)計(jì)不但非常體貼用戶,而且效果還很酷。如果您寫了一個(gè)程序駐留在后臺(tái)并要求在需要的時(shí)候會(huì)提醒用戶,并且希望也能實(shí)現(xiàn)這種效果,那么請(qǐng)跟我一步一步來做下圖所示的這個(gè)仿MSN Messager的滾動(dòng)提示窗口。

C# MSN Messenger的窗口的實(shí)現(xiàn)方法詳細(xì):

效果示例圖

效果示例圖 

C# MSN Messenger的窗口的實(shí)現(xiàn)***步,建立一個(gè)Windows Application,然后在主form中放置一個(gè)Button,如下圖所示:

按鈕設(shè)置 

C# MSN Messenger的窗口的實(shí)現(xiàn)第二步,給這個(gè)Application添加一個(gè)窗體(Form2),把窗體的FormBorderStyle屬性設(shè)置為None(無邊框模式),然后把TopMost屬性(總在最上方)屬性設(shè)置為True,把ShowInTaskbar屬性(是否在 Windows 任務(wù)欄中顯示窗體)設(shè)置為False,并在窗體上加上你打算要顯示的文字(實(shí)際應(yīng)用中一般是在程序中動(dòng)態(tài)加載),將窗體的背景設(shè)置為你想要的圖片和合適的大小。***再放上三個(gè)Timer控件,其中,timer1控制窗體滾出的動(dòng)畫,timer2控制窗體停留時(shí)間,timer3控制窗體的滾入動(dòng)畫,將它們的Interval屬性設(shè)置為10。參見下圖

控件設(shè)置 #p#

C# MSN Messenger的窗口的實(shí)現(xiàn)第三步,編寫代碼,在Form2中添加兩個(gè)屬性用來設(shè)置窗體的顯示大小:

  1. private int heightMax, widthMax;  
  2. public int HeightMax  
  3. {  
  4. set 
  5. {  
  6. heightMax = value;  
  7. }  
  8. get 
  9. {  
  10. return heightMax;  
  11. }  
  12. }  
  13. public int WidthMax  
  14. {  
  15. set 
  16. {  
  17. widthMax = value;  
  18. }  
  19. get 
  20. {  
  21. return widthMax;  
  22. }  

添加一個(gè)ScrollShow的公共方法:

  1. public void ScrollShow()  
  2. {  
  3. this.Width = widthMax;  
  4. this.Height = 0;  
  5. this.Show();  
  6. this.timer1.Enabled = true;  

添加一個(gè)StayTime屬性設(shè)置窗體停留時(shí)間(默認(rèn)為5秒):

  1. public int StayTime = 5000; 

添加ScrollUp和ScrollDown方法來編寫窗體如何滾出和滾入:

  1. private void ScrollUp()  
  2. {  
  3. if(Height < heightMax)  
  4. {  
  5. this.Height += 3;  
  6. this.Location = new Point(this.Location.X, this.Location.Y - 3);  
  7. }  
  8. else 
  9. {  
  10. this.timer1.Enabled = false;  
  11. this.timer2.Enabled = true;  
  12. }  
  13. }  
  14. private void ScrollDown()  
  15. {  
  16. if(Height > 3)  
  17. {  
  18. this.Height -= 3;  
  19. this.Location = new Point(this.Location.X, this.Location.Y + 3);  
  20. }  
  21. else 
  22. {  
  23. this.timer3.Enabled = false;  
  24. this.Close();  
  25. }  

在三個(gè)Timer的Tick方法中分別寫入:

  1. private void timer1_Tick(object sender, System.EventArgs e)  
  2. {  
  3. ScrollUp();  
  4. }  
  5. private void timer2_Tick(object sender, System.EventArgs e)  
  6. {  
  7. timer2.Enabled = false;  
  8. timer3.Enabled = true;  
  9. }  
  10. private void timer3_Tick(object sender, System.EventArgs e)  
  11. {  
  12. ScrollDown();  

在Form2的Load事件中初始化窗體變量:

  1. private void Form2_Load(object sender, System.EventArgs e)  
  2. {  
  3. Screen[] screens = Screen.AllScreens;  
  4. Screen screen = screens[0];//獲取屏幕變量  
  5. this.Location = new Point(  
  6. screen.WorkingArea.Width - widthMax - 20,  
  7.  screen.WorkingArea.Height - 34);//WorkingArea為Windows桌面的工作區(qū)  
  8. this.timer2.Interval = StayTime;  

好了,滾動(dòng)窗體的代碼編寫到這里就完成了,當(dāng)然,它本身只實(shí)現(xiàn)了一個(gè)比較簡(jiǎn)單的窗體滾動(dòng)滾出效果,具體如何去應(yīng)用還應(yīng)該配合你的程序來完成。當(dāng)然,你還可以為它添加更多的功能,比如從窗體的任意位置顯示(這里只是從右下角顯示),淡入淡出效果,加上聲音等等。最常用的就是寫一個(gè)托盤程序,然后采用這種提醒效果。

***,我們?cè)倩氐紽orm1,在Button的Click事件中寫如下代碼來測(cè)試一下效果:

  1. private void button1_Click(object sender, System.EventArgs e)  
  2. {  
  3. Form2 form = new Form2();  
  4. form.HeightMax = 120;//窗體滾動(dòng)的高度  
  5. form.WidthMax = 148;//窗體滾動(dòng)的寬度  
  6. form.ScrollShow();  

編譯并運(yùn)行程序,點(diǎn)擊按紐,怎么樣?是不是跟MSN Messager的效果一樣,很酷吧?:)

C# MSN Messenger的窗口的實(shí)現(xiàn)的基本內(nèi)容就向你介紹到這里,希望對(duì)你了解C# MSN Messenger的窗口的實(shí)現(xiàn)有所幫助。

【編輯推薦】

  1. 淺析C#FileStream寫文件的操作
  2. C#StreamWriter的操作解析
  3. C#BinaryWriter的使用淺析
  4. C#緩存流的使用淺析
  5. C#內(nèi)存流的使用實(shí)例探討
責(zé)任編輯:仲衡 來源: JavaEye博客
相關(guān)推薦

2014-09-01 15:15:33

MSN微軟

2011-11-25 16:27:46

2009-09-02 17:24:44

C#關(guān)機(jī)代碼

2009-09-07 09:36:29

C# DisposeDispose方法

2009-08-26 09:54:45

C#打印預(yù)覽C#打印

2009-08-12 16:26:30

C#讀取XML文檔

2009-09-03 09:44:02

DropDownLisC#遞歸

2009-09-07 14:00:57

C#抓取網(wǎng)頁

2009-08-27 18:09:49

C#接口的實(shí)現(xiàn)

2009-09-01 18:29:24

C#實(shí)現(xiàn)多個(gè)接口

2009-08-31 16:48:02

C#實(shí)現(xiàn)IDispos

2009-09-02 15:34:37

C#實(shí)現(xiàn)插件構(gòu)架

2009-08-25 15:52:27

C#工具欄

2009-09-07 05:31:39

C#窗體關(guān)閉事件

2009-09-11 12:41:41

C#類型轉(zhuǎn)換

2009-08-26 09:48:48

C#異步套接字

2009-09-11 11:27:38

AttributeUsC# Attribut

2009-09-02 10:58:02

C#動(dòng)態(tài)數(shù)組

2009-08-13 18:15:06

C#繼承構(gòu)造函數(shù)

2009-08-28 16:03:15

C#程序?qū)崿F(xiàn)鼠標(biāo)移動(dòng)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)