返回列表 上一主題 發帖

[發問] 如何讓滑鼠移入的判斷只判斷一次~當有改變時~再改變!?

由於每當滑鼠移動到的每一次~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 之類的事件可以產生單次觸發動作.

TOP

        靜思自在 : 有心就有福,有願就有力,自造福田,自得福緣。
返回列表 上一主題