- 帖子
- 835
- 主題
- 6
- 精華
- 0
- 積分
- 915
- 點名
- 0
- 作業系統
- Win 10,7
- 軟體版本
- 2019,2013,2003
- 閱讀權限
- 50
- 性別
- 男
- 註冊時間
- 2010-5-3
- 最後登錄
- 2025-7-5
|
由於每當滑鼠移動到的每一次~Image1會一直閃爍~是否有辦法讓他只判斷一次?當有改變時~再次判斷~再次改變!, ...
av8d 發表於 2012-9-11 13:53 
我大概知道你是在說什麼.
會閃爍是因為你採用 yangjie 的
Image1.Picture = LoadPicture("")
Image1.Picture = LoadPicture(ThisWorkbook.Path & "\圖庫\規格1.JPG")
程式,
而非 Hsieh 所提供的
UserForm
用 Image1.Picture = LoadPicture("")
Class 用
Img = ThisWorkbook.Path & "\" & MyCheck.Caption & ".jpg"
UserForm1.Image1.Picture = LoadPicture(Img)
程式.
因為 MouseMove 實際上是幾乎隨時都在觸發,(在 MouseMove 程式中設中斷點就可確認,即便不操作滑鼠都可能有觸發->桌子震動或是光學滑鼠辨識誤差...)
所以用 yangjie 的程式會一直在清除-重畫-清除... (即你說的閃爍)
而 Hsieh 的程式則是滑鼠移到 UserForm 上時才清除, (在 Class 上則是一直在相同位置上畫相同的圖形, 感覺上是畫面沒有變化)
所以不會有閃爍的情形.
至於你說的 "只判斷一次" 則可能要更低階的 VB 程式碼才有可能做到,
Excel Vba 現成提供的事件中,
沒看到類似 Leave 之類的事件可以產生單次觸發動作. |
|