最小化到托盤的應用程序:
當單機應用程序主窗體上的“關閉”按鈕時,應用程序並不是被關閉,而是被最小化到系統托盤(即屏幕右下角),以圖標的形式顯示;
單擊系統托盤上的應用程序(或者菜單中的“打開”選項時),又會重新顯示應用程序主體;
單擊菜單中的“退出”選項時(主窗體上的“關閉”也可作為關閉按鈕,相應的代碼會給出),才會真正退出應用程序
下面寫一個winforms應用程序的實現過程:
1, 打開vs2008 新建一個windows應用程序;
2, 在默認窗體form1中拖入一個NotifyIcon控件和一個ContextMenuStrip控件並設置NotifyIcon控件顯示的圖像;(選中“notifyIcon1”單擊右上角的三角,設置圖片)
3, 在ContextMenuStrip中添加一個名為“退出”和“打開”的菜單,並將其關聯到NotifyIcon控件(關聯步驟:設置notifyIcon控件的屬性ContextMenuStrip為當前ContextMenuStrip的Name屬性值);
4, 接下來是添加一系列的事件:
public Form1()
{
InitializeComponent();
//最初打開時設置控制台圖標不可見
notifyIcon1.Visible = false;
}
///
///退出菜單單擊事件
///
///
///
private void 退出ToolStripMenuItem_Click(object sender, EventArgs e)
{
this.Close();
}
///
///打開菜單單擊事件
///
///
///
private void 打開ToolStripMenuItem_Click(object sender, EventArgs e)
{
notifyIcon1.Visible = true;
this.Visible = true;
this.WindowState = FormWindowState.Normal;
this.Activate();
}
///
///單擊form窗口“最小化”到托盤事件
///
///
///
private void Form1_SizeChanged(object sender, EventArgs e)
{
if (this.WindowState == FormWindowState.Minimized)
{
this.Hide();
this.notifyIcon1.Visible = true;
}
}
///
///單擊托盤圖標,form窗口正常化顯示事件
///
///
///
Private void notifyIcon1_MouseDown(object sender, MouseEventArgs e)
{
if(e.Button == MouseButtons.Left && e.Clicks ==1)
{
//顯示窗口
this.Visible = true;
//將窗口正常化
this.WindowState = FormWindowState.Normal;
//激活窗口,使窗口獲得焦點
this.Activate();
}
}
///
///單擊form窗口“關閉”最小化到托盤事件
///
///
///
private void Form1_Closing(object sender, CancelEventArgs e)
{
//取消關閉窗口
e.Cancel = true;
//將窗口最小化
this.WindowState = FormWindowState.Minimized;
//將窗口隱藏
this.Visible = false;
}
///
///雙擊托盤正常顯示窗口程序
///
///
///
private void notifyIcon1_MouseDoubleClick(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left && e.Clicks == 2)
{
//顯示窗口
this.Visible = true;
//將窗口正常化
this.WindowState = FormWindowState.Normal;
//激活窗口,使窗口獲得焦點
this.Activate();
}
}