這幾天真的無力上來發新文 (因為回家就是睡覺 太累了 囧>)
標題指的就是下列這個畫面

首先我要來講一下 NotifyIcon這個Control
一般我們用軟體時,按下縮小鍵就會自動縮到右下角那排去
顯示的圖片 就是利用這個NotifyIcon
這個作用的原理並不是真的把東西給縮下去
而是利用 Form.Hide() 把我們的程式畫面給隱藏起來
再把NotifyIcon顯示出來
當然,NotifyIcon的功用不只是這樣
通常,使用者在這些 icon 上按右鍵然後會顯示Menu
就是利用到 contextMenuStrip + NotifyIcon
不過這個不是這篇要講的,就此打住好了
所以根據上面看似很多其實沒什麼的廢話可以得知
要做成縮到工具列這個功能需要兩個步驟
1. Form.Hide()
2. NotifyIcon1.Visible = true
所以我們在AP的開發畫面上拉一個NotifyIcon的控制項
設定顯示的 Icon (一定要設,因為它沒預設的圖片)
再打開 Form 的 Resize 事件寫下下面這段Code

這時其實我們的功能已經完成一半了
對了,先別著急,把 NotifyIcon 的 MouseDoubleClick 事件打開
寫進下面的Code吧,不然一縮下去就沒救了
到時可別怪坎尼沒說喔 哈

此時就可以執行一下程式來看效果
但是我們要如何做到一開啟程式就直接隱藏起來呢?
「不就是在Load事件裡寫下上面的程式碼嗎?」
坎尼一開始的想法也是這樣,不過左試右試,呃...怎麼都不會動
好吧,坎尼就不賣關子了 (其實是想休息了 orz)
我們要做的動作很簡單
1. 到 Form 的屬性設定 WindowState = Minimized (如下圖)

2. 在 Form_Load 的事件裡寫下 this.Hide()

第一點就是讓程式在啟動時,視窗的狀態是最小化
第二點就是讓程式隱藏起來
為什麼不寫NotifyIcon1.Visible = true呢?
因為我們已經寫在Resize事件裡,並不需要特別再寫一次
但是不知道為什麼 Hide() 一定要寫,這是坎尼試出來的結果
以上,若有人想開發常駐程式可以參考看看 ^^
沒有留言:
張貼留言