返回列表 上一主題 發帖

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

本帖最後由 mark15jill 於 2012-9-11 15:19 編輯
Private Sub Userform1_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single,  ...
av8d 發表於 2012-9-11 13:53



    MouseMove 是 移動 就視為有改變
    不知道您所謂的 有改變是指?
     1.圖檔不同(檔案 檔名
     2.對照數據不同
     3事件不同

如果只是 單一 點擊 才會換圖
那可參考 Click 相關用法

如果只是 雙點擊 才會換圖
那可參考DobleClick 相關用法

  多做多想多學習,少看少錯少迷途

  多做=多多練習,多多編寫。
  多想=想想為什麼人家程式要那樣寫,如果換成自己,又會怎寫。
  多學習=學習人家的發問並解答,學習人家的寫法

  少看=只看不做也枉然

TOP

回復 10# av8d
不懂你所說的閃爍,上傳檔案看看吧
學海無涯_不恥下問

TOP

由於每當滑鼠移動到的每一次~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

回復 4# Hsieh


    大大~如果
checkbo71~80顯示 Image1~10
checkbo101~110顯示 Image11~20

我修改了S的初始值~可是無效~是不是修改錯誤了?

因為我有多個UserForm~又該如何使用?謝謝大大!

TOP

回復 14# av8d


    小弟有個想法...
大大您是否試用  list 表單列出 檔案數量  再點選比較方便?

  多做多想多學習,少看少錯少迷途

  多做=多多練習,多多編寫。
  多想=想想為什麼人家程式要那樣寫,如果換成自己,又會怎寫。
  多學習=學習人家的發問並解答,學習人家的寫法

  少看=只看不做也枉然

TOP

        靜思自在 : 【時間如鑽石】時間對一個有智慧的人而言,就如鑽石般珍貴;但對愚人來說,卻像是一把泥土,一點價值也沒有。
返回列表 上一主題