十年網(wǎng)站開(kāi)發(fā)經(jīng)驗(yàn) + 多家企業(yè)客戶(hù) + 靠譜的建站團(tuán)隊(duì)
量身定制 + 運(yùn)營(yíng)維護(hù)+專(zhuān)業(yè)推廣+無(wú)憂售后,網(wǎng)站問(wèn)題一站解決
'vb全局快捷鍵是個(gè)大大滴難題,不好整。以下是個(gè)演示,辦法比較笨,本人自用的,你試試。
創(chuàng)新互聯(lián)堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:做網(wǎng)站、成都做網(wǎng)站、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶(hù)于互聯(lián)網(wǎng)時(shí)代的濂溪網(wǎng)站設(shè)計(jì)、移動(dòng)媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!
'窗體放上控件:Command1、Label1、Check1、Check2、Text1、Text2、Timer1
'加入以下代碼,運(yùn)行,設(shè)置"確定"鍵的快捷鍵
'可選"CTRL+某鍵"或者"SHIFT+某鍵"
'"某鍵"自己設(shè)置,只能設(shè)置為字母或數(shù)字
Private Declare Function GetAsyncKeyState Lib "user32" _
(ByVal vKey As Long) As Integer 'API聲明
Dim i
'================================================================
'這部分是設(shè)置各控件的大小、位置和初始屬性,為了便于演示才加的,
'你可以自行設(shè)計(jì)好各控件的大小、位置和初始屬性,無(wú)需這些代碼。
Private Sub Form_Load()
Form1.Width = 2690: Form1.Height = 2100
Command1.Width = 1215: Command1.Height = 495
Command1.Top = 120: Command1.Left = 120
Command1.Caption = "確定"
Label1.Width = 2175: Label1.Height = 255
Label1.Top = 720: Label1.Left = 120
Label1.Caption = "設(shè)置 確定 鍵的快捷鍵:"
Check1.Width = 975: Check1.Height = 255
Check1.Top = 960: Check1.Left = 120
Check1.Caption = "CTRL +"
Check2.Width = 975: Check2.Height = 255
Check2.Top = 1320: Check2.Left = 120
Check2.Caption = "SHIFT +"
Text1.Width = 255: Text1.Height = 270
Text1.Top = 960: Text1.Left = 1080
Text1.Text = ""
Text2.Width = 255: Text2.Height = 270
Text2.Top = 1320: Text2.Left = 1080
Text2.Text = ""
Timer1.Interval = 10 'Timer的屬性,必須設(shè)置
End Sub
'以上部分是設(shè)置各控件的大小、位置和初始屬性,為了便于演示才加的,
'你可以自行設(shè)計(jì)好各控件的大小、位置和初始屬性,無(wú)需這些代碼。
'================================================================
Private Sub Timer1_Timer()
If Text1 "" Then
If Len(Text1) 1 Then Text1 = Left(Text1, 1)
If Asc("a") = Asc(Text1) And Asc(Text1) = Asc("z") _
Then Text1 = Chr(Asc(Text1) - 32)
If Check1.Value = 1 And GetAsyncKeyState(vbKeyControl) 0 _
And GetAsyncKeyState(Asc(Text1)) 0 Then
i = i + 1
If i = 1 Then Call Command1_Click
Else
i = 0
End If
End If
If Text2 "" Then
If Len(Text2) 1 Then Text2 = Left(Text2, 1)
If Asc("a") = Asc(Text2) And Asc(Text2) = Asc("z") _
Then Text2 = Chr(Asc(Text2) - 32)
If Check2.Value = 1 And GetAsyncKeyState(vbKeyShift) 0 _
And GetAsyncKeyState(Asc(Text2)) 0 Then
i = i + 1
If i = 1 Then Call Command1_Click
Else
i = 0
End If
End If
End Sub
Private Sub Command1_Click()
print "你好"
SendKeys "你好"
End Sub
如果是用Alt組合健,最簡(jiǎn)單的方法就是,在按鈕的Text屬性里加個(gè)符合,比如想用Alt+A來(lái)控制Button1的話,就在Button1的Text屬性上加一個(gè)A即可。比如Text屬性是“我是按鈕(A)”,如圖所示,那么在按下Alt+A就可以執(zhí)行Button1_Click命令了,呵呵
新建一個(gè)Form1把Form1的KeyPreview改成True
拖入一個(gè)Button1到Form1上面
然后加入以下代碼
Private
Sub
Form1_KeyDown(sender
As
Object,
e
As
KeyEventArgs)
Handles
Me.KeyDown
If
e.KeyData
=
(Keys.Alt
Or
Keys.G)
Then
Button1.PerformClick()
'或者用Button1_Click(Nothing,
New
EventArgs)
'快捷鍵Alt+G觸發(fā)Button1_Click()事件。
End
If
End
Sub
Private
Sub
Button1_Click(sender
As
Object,
e
As
EventArgs)
Handles
Button1.Click
Button1.Size
=
New
Size(180,
23)
Button1.Text
=
"我被局部快捷鍵給召喚了~"
End
Sub
這個(gè)容易啊。把按鈕屬性的default設(shè)為ture就行了。要想快捷鍵(ESC)就把cancel設(shè)為ture。
不清楚熱鍵和快捷鍵是什么區(qū)別
1.如果你是指Chrl+S這樣的快捷鍵,可以設(shè)置ShortCutKeys屬性,屬性窗口就有可視化編輯器。
2.如果你是指"保存(S)",其中s有下劃線這樣的用Alt+字母來(lái)訪問(wèn)的設(shè)置,應(yīng)該在菜單項(xiàng)的Text屬性中使用符號(hào)。符號(hào)后面的字母將被作為快速訪問(wèn)字符,顯示的時(shí)候不會(huì)被顯示出來(lái),而字母會(huì)自動(dòng)加上下劃線。比如"保存(s)"。
3.和選中標(biāo)記有關(guān)的屬性有兩個(gè)
CheckOnClick 在菜單項(xiàng)上單擊時(shí)是否改變Checked屬性
Checked 設(shè)置/獲取 菜單項(xiàng)是否被選中
4.設(shè)置菜單項(xiàng)的Enabled屬性為False