1樓:匿名使用者
更改form屬性的keypreview屬性為true,然後把執行條件改成
private sub form_keydown(keycode as integer, shift as integer)
if keycode = 17 then 『---按下ctrl時執行。。。。
end if
end sub
2樓:匿名使用者
只有一個辦法,就是使用api。下面是要用到的api:
private declare function setwindowlong lib "user32" alias "setwindowlonga" (byval hwnd as long, byval nindex as long, byval dwnewlong as long) as long
private declare function getwindowlong lib "user32" alias "getwindowlonga" (byval hwnd as long, byval nindex as long) as long
private declare function callwindowproc lib "user32" alias "callwindowproca" (byval lpprevwndfunc as long, byval hwnd as long, byval msg as long, byval wparam as long, byval lparam as long) as long
private declare function registerhotkey lib "user32" (byval hwnd as long, byval id as long, byval fskey_modifiers as long, byval vk as long) as long
private declare function unregisterhotkey lib "user32" (byval hwnd as long, byval id as long) as long
如果有什麼問題,請發e_mail到:[email protected]
vb如何對組合鍵進行響應
3樓:寒信
在keydown事件裡 引數shift表示控制鍵,引數keycode表示其他鍵
具體的鍵值你可以在textbox 的keydown事件裡自己測試,窗體新增一個文字框一個標籤,**如下:
private sub text1_keydown(keycode as integer, shift as integer)
label1 = "shift=" & shift & "," & "keycode=" & keycode
end sub
按鍵及shift值如下:
1 按下shift
2 按下ctrl
3 按下shift +ctrl
4 按下alt
5 按下shift +alt
6 按下ctrl+alt
舉例:判斷是否按下shift +alt+c
if shift=5 and keycode=67 then msgbox "你按下了shift +alt+c"
如何讓vb響應鍵盤事件
4樓:羊舌青雪
重點是 me.keypreview=1 見我的附件 附件: iask.rar
vb同時響應按下的兩個鍵盤的keydown事件,要怎麼弄
5樓:匿名使用者
單一鍵盤事件必然有先後次序的,可以和keyup結合起來處理。在視窗模組裡定義個變數,在keydown事件裡用來暫存keycode,在keyup事件裡把它清0,當然keycode要匹配。
這樣的話在keydown事件裡可以檢查這個變數值,如果不是0說明還有一個鍵處於按下狀態。
這是一般鍵處理,至於控制鍵ctrl,alt,shift 在shift引數裡就有。你是指哪種?
vb中的鍵盤事件有哪三種
6樓:
vb中的鍵盤事件有keydown keypress keyup事件。
在vb中幾乎所有的控制元件都有這三個事件。
這三個的事件順序是,keydown(按下),keypress,keyup(鬆開),keypress代表的僅僅是一個過程,它的用處和其他兩個不一樣,馬上講到。
當我們按住一個鍵一段時間,系統會重複keydown,keypress,keydown,keypress,keydown,keypress事件。
keypress和他們的區別:keypress讀取的是ascii碼(數字和字元並且區分大小寫,不能讀取控制鍵如:ctrl).
vb中響應鍵盤事件的方法
7樓:
把窗體的keypreview屬性改為true即可。
我實驗過以後回答的,不知道你的form_keydown過程裡是不是有什麼判斷條件,你可以在form_keydown第一行加一個
msgbox "ok"
試試,如果有提示,那可能是你的判斷條件有問題,否則,我就幫不了你了。vb提供keypreview屬性,就是為了解決你遇到的這個問題的。
另外請確定實驗的時候,窗體是否處於啟用狀態,在視窗非啟用狀態是不能這麼做的,那樣需要用hook技術了。
8樓:匿名使用者
我不知道你說的「form_keydown就不好用了」具體是什麼意思,「不好用」為何意?
應該來說,一樓的答案可以解決你的問題。
9樓:
那就在第一焦點控制元件上的keydown事件中加**唄
vb鍵盤響應的問題
10樓:匿名使用者
把form的keypreview改成true,然後在keydown和keypress還有keyup裡面寫東西
11樓:小羅哥
直接在視窗的
事件裡面寫東西就好了。
其他空間的鍵盤按下直接呼叫這段程式就好
private sub form_keydown(keycode as integer, shift as integer)
end sub
private sub form_keyup(keycode as integer, shift as integer)
end sub
private sub form_keydown(keycode as integer, shift as integer)
end sub
按CTRL鍵電腦自動重啟!
軟體問題,重灌系統吧!我也碰到過,重灌後解決的。ctrl alt del 電腦重啟按什麼鍵?1 熱鍵為ctrl alt del。2 ctrl alt delete兩次就重啟。3 快速重啟電腦 快捷鍵ctrl alt home 4 可以手動設定一個重啟電腦的批處理檔案,點選就成了重啟電腦的快捷鍵了。方...
英雄聯盟按ctrl不能放技能,ctrl鍵沒壞,可是英雄聯盟ctrl加技能鍵不能加點了
遊戲特性!ctrl加技能是自動升級的快捷鍵!恩 遊戲特性 一般都是快捷鍵 遊戲設定的ctrl q w e r 是加點技能。如果你不要這樣可以改鍵。望採納。ctrl 技能是技能加點的快捷鍵 按ctrl釋放 我沒試過 也沒聽過 ctrl沒有,用ctrl加某個技能鍵,能升級技能 ctrl鍵沒壞,可是英雄聯...
ctrl鍵一直被自動的按著,CTRL鍵一直被自動的按著!
以下幾個方案都試下 1鍵盤問題,換個鍵盤測試下 2粘滯鍵問題 3中毒了,用多個防毒軟專件全盤查殺下 4軟體問 屬題,一般來說可能是你的輸入法程式出問題了,如果不是的話把不是系統軟體的其他軟體都禁用試試 如果你確定以完全排除1 2的話,直接進行3,4方案好了 使用附件中的螢幕鍵盤,反覆按下其中的ctr...