這幾天真的無力上來發新文 (因為回家就是睡覺 太累了 囧>)
標題指的就是下列這個畫面
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh6o8GojX321MB0HomEzGb0a0470-xqY0DKdRwf6QkDjrT-KlCZOEeluDEpVShj0Ap9oNHM9JXLX8CYDTYfB2mxNz1PoktWtacrYoZxC6AH75ePakvSwsQp-DyoDKOf5Irm6LGzRgsogFkt/s400/ni1.png)
首先我要來講一下 NotifyIcon這個Control
一般我們用軟體時,按下縮小鍵就會自動縮到右下角那排去
顯示的圖片 就是利用這個NotifyIcon
這個作用的原理並不是真的把東西給縮下去
而是利用 Form.Hide() 把我們的程式畫面給隱藏起來
再把NotifyIcon顯示出來
當然,NotifyIcon的功用不只是這樣
通常,使用者在這些 icon 上按右鍵然後會顯示Menu
就是利用到 contextMenuStrip + NotifyIcon
不過這個不是這篇要講的,就此打住好了
所以根據上面看似很多其實沒什麼的廢話可以得知
要做成縮到工具列這個功能需要兩個步驟
1. Form.Hide()
2. NotifyIcon1.Visible = true
所以我們在AP的開發畫面上拉一個NotifyIcon的控制項
設定顯示的 Icon (一定要設,因為它沒預設的圖片)
再打開 Form 的 Resize 事件寫下下面這段Code
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjkyT64XbHRuZw32_2hvMyuP7qBQk0CdA38SOMDa5wFwuQYP_-LVa7l9Awdk_RFazXfSl75_63E6zjsluu7-USJSdjuhEf8eTknDJzNAbgjGOoURM2NX7CuzX_BDVCZn_m-98Zw4b5LY4mL/s400/ni4.png)
這時其實我們的功能已經完成一半了
對了,先別著急,把 NotifyIcon 的 MouseDoubleClick 事件打開
寫進下面的Code吧,不然一縮下去就沒救了
到時可別怪坎尼沒說喔 哈
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiRDwl0TrmuhSY8GP9-CkShA68rsjx1yZTzfoymCE3cGAWlbEiQwFIgIn4y6nmkMPBhpY4f7-rNqnK5WUCVbI4vTj0hjcfYWs5Dca_f0_WFgNaImqwi1mZ7lD9naczDJI2i8ic-uNIOCJ-Z/s400/ni2.png)
此時就可以執行一下程式來看效果
但是我們要如何做到一開啟程式就直接隱藏起來呢?
「不就是在Load事件裡寫下上面的程式碼嗎?」
坎尼一開始的想法也是這樣,不過左試右試,呃...怎麼都不會動
好吧,坎尼就不賣關子了 (其實是想休息了 orz)
我們要做的動作很簡單
1. 到 Form 的屬性設定 WindowState = Minimized (如下圖)
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhXG_W5iFKtTs2Cev0T_0YL_vfBCyDanto0yPA_W3QZ7l8TZBWW8docqQn1A6ORhIDPwFzIHP0Xz_vwyBm0z0KBcY9QRCLrPtTKeSavihTsQW5TjJDj9QT4ECdgIQNj3seKD7g9BIsoFYtP/s400/ni5.png)
2. 在 Form_Load 的事件裡寫下 this.Hide()
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEipmZOa86pl_WBy8nTC-ZkmKpajq32W8gSUCZ8QTnDxVZA3-yb3kw5_y3Jrwh7qSQ1y3gyzPeRplBL6HMixTOGaXOTjwfjY2kzAHjEqp4dQKpitqkxJKfUzeAmW8Y1fxHK8Smrz8hP9q3Cn/s400/ni3.png)
第一點就是讓程式在啟動時,視窗的狀態是最小化
第二點就是讓程式隱藏起來
為什麼不寫NotifyIcon1.Visible = true呢?
因為我們已經寫在Resize事件裡,並不需要特別再寫一次
但是不知道為什麼 Hide() 一定要寫,這是坎尼試出來的結果
以上,若有人想開發常駐程式可以參考看看 ^^
沒有留言:
張貼留言