VS.Net 开发 MSN一样缓慢出来的提示信息的方法
生活随笔
收集整理的這篇文章主要介紹了
VS.Net 开发 MSN一样缓慢出来的提示信息的方法
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
MSN有信息或郵件時,會緩慢出現一個信息窗口. 其實不難,E8.Net平臺中 開發的項目中有做個小信使功能. 提示方式類似MSN有新信息來一樣.
首先: 有個窗體 form1.aspx 實現小圖標?出現在 右下腳.
????? 關鍵點:?窗體Opacity 屬性 設置為 0%? 隱藏
???????????? 放置一個控件 NotifyIcon ,實現右下角圖標功能
????? 菜單代碼:
????? private?void?Form1_Load(object?sender,?EventArgs?e)
????????{
????????????MenuItem?menuItem1?=?new?MenuItem("未讀郵件");
????????????MenuItem?menuItem2?=?new?MenuItem("待辦事項");
????????????MenuItem?menuItemP2?=?new?MenuItem("-");
????????????MenuItem?menuItem6?=?new?MenuItem("切換用戶");
????????????MenuItem?menuItemP1?=?new?MenuItem("-");
????????????MenuItem?menuItem4?=?new?MenuItem("退出程序");
????????????//分別為4個菜單項添加Click事件響應函數?
????????????menuItem1.Click?+=?new?System.EventHandler(this.menuItem1_Click);
????????????menuItem2.Click?+=?new?System.EventHandler(this.menuItem2_Click);
????????????menuItem4.Click?+=?new?System.EventHandler(this.menuItem4_Click);
????????????menuItem6.Click?+=?new?EventHandler(menuItem6_Click);
????????????//設置NotifyIcon對象的ContextMenu屬性為生面的彈出菜單對象?
????????????niTools.ContextMenu?=?new?ContextMenu(new?MenuItem[]?{?menuItem1,?menuItem2,?menuItemP2,?menuItem6,?menuItemP1,?menuItem4?});
????????????InitBrowserInterface();
?????????
???????????
????????????
????????}
??
???
???提示窗口實現:
?? 當有新郵件時:
?? ?FrmShowEmail?frm?=?new?FrmShowEmail();
????????????frm.Opener?=?this;
????????????frm.EmailCount?=?iEmailCnt;
????????????frm.EmailSubject?=?strEmailSubject;
????????????frm.EmailFrom?=?strEmailFrom;
????????????frm.EmailDate?=?dtLastEmail.ToString("yyyy-MM-dd?hh:mm");
????????????frm.HeightMax?=?180;//窗體滾動的高度
????????????frm.WidthMax?=?268;//窗體滾動的寬度
????????????frm.ScrollShow();
?? 實現的慢慢彈出的關鍵代碼在 frmShowEmail.aspx中
?? 放置了三個時間控件 Timer1 Timer2 Timer3 分別設置 Interval = 60 100 60
? 關鍵代碼:
private?void?FrmShowEmail_Load(object?sender,?EventArgs?e)
????????{
????????????Screen[]?screens?=?Screen.AllScreens;
????????????Screen?screen?=?screens[0];//獲取屏幕變量
????????????this.Location?=?new?Point(screen.WorkingArea.Width?-?widthMax?-?20,?screen.WorkingArea.Height?-?34);//WorkingArea為Windows桌面的工作區
????????????this.timer2.Interval?=?StayTime;
????????}
????????public?void?ScrollShow()
????????{
????????????Application.DoEvents();
????????????this.Width?=?widthMax;
????????????this.Height?=?0;
????????????
????????????
????????????this.Show();
????????????this.timer2.Enabled?=?false;
????????????this.timer3.Enabled?=?false;
????????????this.timer1.Enabled?=?true;
????????????
????????}
????????private?void?ScrollUp()
????????{
????????????if?(Height?<?heightMax)
????????????{
????????????????this.Height?+=?3;
????????????????this.Location?=?new?Point(this.Location.X,?this.Location.Y?-?3);
????????????}
????????????else
????????????{
????????????????this.timer1.Enabled?=?false;
????????????????this.timer2.Enabled?=?true;
????????????}
????????}
????????private?void?ScrollDown()
????????{
????????????if?(Height?>?40)
????????????{
????????????????this.Height?-=?3;
????????????????this.Location?=?new?Point(this.Location.X,?this.Location.Y?+?3);
????????????}
????????????else
????????????{
????????????????this.timer3.Enabled?=?false;
????????????????this.Close();
????????????????this.Dispose();
????????????}
????????}
????????private?void?timer1_Tick(object?sender,?System.EventArgs?e)
????????{
????????????ScrollUp();
????????}
????????private?void?timer2_Tick(object?sender,?System.EventArgs?e)
????????{
????????????timer2.Enabled?=?false;
????????????timer3.Enabled?=?true;
????????}
????????private?void?timer3_Tick(object?sender,?System.EventArgs?e)
????????{
????????????ScrollDown();
????????}
???
???
這樣就實現了類似MSN的方式提示新郵件和新的待辦事項.
轉載于:https://www.cnblogs.com/cancanwyq/archive/2007/11/01/945667.html
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的VS.Net 开发 MSN一样缓慢出来的提示信息的方法的全部內容,希望文章能夠幫你解決所遇到的問題。