此時我們可利用工具箱裡的"NotifyIcon"來幫忙,
縮小後,我們可能還需要將程式還原,所以我們還需要用到"ContextMenuStrip"這個工具,
首先,拉一個 "ContextMenuStrip"工具到你的視窗,在裡面我們可以新增幾個menu items,
這些items就是當程式縮小到右小角後,在程式的icon上按滑鼠右鍵時會跳出的選項,
假設我們增加了"Open"和"Quit"二個選項,
再來,拉一個"NotifyIcon"工具到你的視窗,開始編輯它的屬性,
其中,Icon就是縮小時,使用者會看到的圖示,
Text就是使用者滑鼠移到圖示上面時,會跳出的文字,
在ContextMenu上點一下,即可選擇我們剛剛加入的ContextMenuStrip工具名稱,
接下來就是程式部份:
private void frmMain_Resize(object sender, EventArgs e) { if (this.WindowState == FormWindowState.Minimized) { this.notifyIcon1.Visible = true; this.Hide(); } else { this.notifyIcon1.Visible = false; } } private void openToolStripMenuItem_Click(object sender, EventArgs e) { this.Show(); this.WindowState = FormWindowState.Normal; } private void quitToolStripMenuItem_Click(object sender, EventArgs e) { this.Close(); }frmMain_Resize()是主視窗Resize這個Event的處理函數,
openToolStripMenuItem_Click()是ContextMenuStrip1的"Open"選項Click Event的處理函數, quitToolStripMenuItem_Click()是ContextMenuStrip1的"Quit"選項Click Event的處理函數, 有時候,我們發現有些程式你把它關掉時,它不會直接關掉, 會告訴你它將縮小到右下角,怎麼做到這樣的效果呢?
private void frmMain_FormClosing(object sender, FormClosingEventArgs e) { DialogResult result; result = MessageBox.Show("Yes to minimize, No to quit directly, Cancel to return", "Minimize to tray?", MessageBoxButtons.YesNoCancel); if (result == DialogResult.Yes) { this.WindowState = FormWindowState.Minimized; e.Cancel = true; } else if (result == DialogResult.Cancel) { e.Cancel = true; } }frmMain_FormClosing()是主視窗FormClosing這個Event的處理函數, e.Cancel = true;表示Cancel Closing這個動作
沒有留言:
張貼留言