2008年6月15日

如何在啟動AP時自動縮到工具列

星期五一直到昨天半夜,坎尼一直在和朋友們交際應酬
這幾天真的無力上來發新文 (因為回家就是睡覺 太累了 囧>)

標題指的就是下列這個畫面


首先我要來講一下 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() 一定要寫,這是坎尼試出來的結果
以上,若有人想開發常駐程式可以參考看看 ^^

沒有留言:

Google Spreadsheet 裡用規則運算式

最近因為工作關係,遇到要用 Google Form 及 Google Sheet 所以研究了 Google Sheet 裡的一些 function 怎麼用 首先,分享一下如何在 Google Sheet 裡用規則運算 :D