PDA

View Full Version : سوال: گير انداختن فشردن Ctrl+Function Key در Form



A.Farzin
شنبه 28 اردیبهشت 1387, 19:35 عصر
با سلام

فشردن كليدهاي F1 تا F12 را به سادگي در رويداد Keydown هر Form ميتوان كنترل كرد. ولي چرا نمي‌توان همين كار را براي Ctrl+F1 تا Ctrl+F12 نه در رويداد Keydownو نه در رويداد Keypress انجام داد؟
ممنون

vbhamed
یک شنبه 29 اردیبهشت 1387, 00:32 صبح
سلام
اينم نمونه براي Ctrl + F1 تا F4



If Shift = vbCtrlMask Then

Select Case KeyCode
Case vbKeyF1: MsgBox "Ctrl + F1"
Case vbKeyF2: MsgBox "Ctrl + F2"
Case vbKeyF3: MsgBox "Ctrl + F3"
Case vbKeyF4: MsgBox "Ctrl + F4"

End Select

End If

ali_habibi1384
یک شنبه 29 اردیبهشت 1387, 02:43 صبح
با سلام

فشردن كليدهاي F1 تا F12 را به سادگي در رويداد Keydown هر Form ميتوان كنترل كرد. ولي چرا نمي‌توان همين كار را براي Ctrl+F1 تا Ctrl+F12 نه در رويداد Keydownو نه در رويداد Keypress انجام داد؟
ممنون
جواب:چرا نشه؟ یک روشش رو دوستمون گفتند . روش دیگری هم هست


Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
If Shift = 2 And KeyCode = 112 Then MsgBox "F1+CTRL"
If Shift = 2 And KeyCode = 113 Then MsgBox "F2+CTRL"
If Shift = 2 And KeyCode = 114 Then MsgBox "F3+CTRL"
If Shift = 2 And KeyCode = 115 Then MsgBox "F4+CTRL"
End Sub

این کدها از F1 تا F4 همراه با CTRL هستش. وقتی کلید CTRL فشرده میشه مقدار پارامتر Shift عدد 2 خواهد بود.