有時我們會想用動態圖做為表單的 Icon,也可在表單最小化時動態呈現在最下方的工作列。
最初想法簡單的以為用一個 Gif 動態圖取代 Icon 的 image 就成了,可是在 icon 中找不到和 Image 或 bitmap 相關的直接屬性可以設定。
後來找到了(MSDN 的說明)後用以下方法達成了目的...
有時我們會想用動態圖做為表單的 Icon,也可在表單最小化時動態呈現在最下方的工作列。
最初想法簡單的以為用一個 Gif 動態圖取代 Icon 的 image 就成了,可是在 icon 中找不到和 Image 或 bitmap 相關的直接屬性可以設定。
後來找到了(MSDN 的說明)後用以下方法達成了目的:
- 先取得一張動態 GIF 圖,把它放到 PictureBox 上面。
- 要用 PictureBox 的 Image 屬性,若用 BackgroundImage 它不會動。
- 用一個 Timer 定時取回變化中的圖資。
- 用 Me.Icon = Icon.FromHandle(CType(PictureBox1.Image, Bitmap).GetHicon) 即可做到了。
程式碼:
Public Class Form3
Private Sub Form3_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
Timer1.Interval = 200
Timer1.Enabled = True
End Sub
'---使用 Timer 定時擷取變化中的圖像轉成 Icon---
Private Sub Timer1_Tick(sender As System.Object, e As System.EventArgs) Handles Timer1.Tick
Me.Icon = Icon.FromHandle(CType(PictureBox1.Image, Bitmap).GetHicon)
Me.Icon.Dispose()
End Sub
End Class