某些鍵,如 Tab、Return、Esc 和箭頭鍵,由控件自動處理。所以當你的窗體添加了其它控件如按鈕,checkbox等,form的keydown事件就觸發不了,為使這些鍵引發窗體的KeyDown事件,你需要重寫form.ProcessDialogKey函數,這個函數可以在消息預處理期間 處理對話字符,例如TAB、RETURN、ESCAPE和箭頭鍵等,以下是我重寫了這個事件來處理方向鍵,你需要把它放到你的代碼里:

作為一家“創意+整合+營銷”的成都網站建設機構,我們在業內良好的客戶口碑。創新互聯提供從前期的網站品牌分析策劃、網站設計、網站制作、網站設計、創意表現、網頁制作、系統開發以及后續網站營銷運營等一系列服務,幫助企業打造創新的互聯網品牌經營模式與有效的網絡營銷方法,創造更大的價值。
Protected Overrides Function ProcessDialogKey(ByVal keyData As Keys) As Boolean
If keyData = Keys.Left Or keyData = Keys.Right Or keyData = Keys.Up Or keyData = Keys.Down Then
Return False'如果是方向鍵返回FALSE,意思是繼續執行form的keydown事件.
Else
Return MyBase.ProcessDialogKey(keyData)
End If
End Function
這種情況是無法避免的,因為雙擊是由兩次單擊組成的,如果你要求系統只響應雙擊事件不響應單擊事件,那么系統在接收到鍵盤發來的一次單擊動作時,它就會暫時停頓下來,因為它不知道緊接著會不會還有一次單擊動作,如果有就是雙擊,如果沒有就是單擊。這個過程雖說是“一眨眼”,但也足以使單擊事件產生明顯的延時(舉個極端的例子:假如你把雙擊的時間間隔設為10秒,那么即使沒有雙擊,控件的單擊事件也要在10秒后才觸發!),會嚴重影響用戶體驗,所以系統不可能為了雙擊事件而自動屏蔽單擊事件的。因此,通常情況下,單擊事件和雙擊事件最好不要同時使用,也就是說用了單擊就不要再用雙擊,反之用了雙擊也不要再用單擊。
你需要在 click 事件運行的起始部位
把按鈕 設置成 Enable=false
代碼運行結束后 再設回 true
SetCursorPos(xr,yr)
sleep (1000) '移動鼠標后加個延時 先加大一點的沒關系 ?測試有效后再縮短延時時間
其他行的sleep 也如此 再者你的leftdown 和 up 常量有先賦值吧
文章題目:vbnet雙擊不觸發 vbs雙擊不執行
分享網址:http://www.yijiale78.com/article8/docjhop.html
成都網站建設公司_創新互聯,為您提供自適應網站、品牌網站制作、網站建設、ChatGPT、小程序開發、全網營銷推廣
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯