程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> Visual C#彈出窗口殺手(2)

Visual C#彈出窗口殺手(2)

編輯:關於C語言

一個非常有趣的功能是讓用戶關閉窗體的時候程序並不是退出,為了實現這個功能,我們必須要重寫窗體的OnClosing事件。

protected override void OnClosing(CancelEventArgs e)
{
// 用最小化來代替關閉操作d
e.Cancel = true;
// 最小化,並且隱藏窗體
this.WindowState = FormWindowstate.Minimized;
Hide();
}
當然,我們必須要提供一個必須的退出方法.這個可以在托盤的右鍵菜單的exit中實現,
private void menu_App_Exit(object sender, System.EventArgs e)
{
NativeWIN32.UnregisterHotKey(Handle, 100);
//隱藏托盤
notifyIcon1.Visible = false;
Application.Exit();
}

添加右鍵菜單

添加一個右鍵菜單和添加托盤基本一樣,從工具箱中添加context menu就可以.右鍵菜單在你鼠標右鍵按下的時候是會自動彈出的。

當設置好右鍵菜單以後,我們必要要根據不同的情況來啟用或停用右鍵菜單,這個可以通過在菜單的BeforePopup設置。Enabled屬性來實現。

private void menu_App_BeforePopup(object sender, System.EventArgs e)
{
if ( this.WindowState == FormWindowstate.Minimized )
{
App_Show.Enabled = true;
App_Hide.Enabled = false;
}
else
{
App_Show.Enabled = false;
App_Hide.Enabled = true;
}
}

計時工具

.Net Framework的 Timer能和系統的Win32 timer實現一樣的功能。我們要做的就是設置一個timer,然後合理的設置屬性。

m_Timer = new System.Timers.Timer(); // explicit namespace (Timer also in System.Threading)
m_Timer.Elapsed += new ElapsedEventHandler(OnTimerKillPopup);
m_Timer.Interval = m_nInterval; // for instance 3000 milliseconds
m_Timer.Enabled = true; // start timer
protected void OnTimerKillPopup(Object source, ElapsedEventArgs e)
{
m_Timer.Enabled = false; // pause the timer
FindPopupToKill();
m_Timer.Enabled = true;
}

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved