PDA

View Full Version : سوال: استفاده از دو کلید در رویداد keyDown فرم



shadi khanum
شنبه 31 تیر 1391, 17:10 عصر
سلام دوستان. وقتی با VS کار میکنید میتونید مثلا با Ctrl+K,Ctrl+C یه خط رو کامنت کنید. یعنی با فشردن Ctrl و بعد از اون کلید K و کلید C میتونید یه کاری انجام بدید. من الان همچین چیزی واسه برنامه خودم میخوام که مثلا با Ctrl+A و بعد از اون Ctrl+M یه کاری انجام بشه.
یعنی فشرده شدن سه کلید رو برنامه تشخیص بده و بر اساسش یه کاری انجام بشه
مرسی

shadi khanum
شنبه 31 تیر 1391, 18:34 عصر
دوستان مشکلم حل شد. راه حل رو گذاشتم که اگه کسی این مشکل رو داشت استفاده کنه:

Dim flag As Boolean


Private Sub Form1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown
Select Case flag
Case True
If e.Control AndAlso e.KeyCode = Keys.M Then
MsgBox("Ctrl + A + M Pressed")
End If
Case False
If e.Control AndAlso e.KeyCode = Keys.A Then
flag = True
End If
End Select
End Sub

مهرداد صفا
شنبه 31 تیر 1391, 18:47 عصر
سلام
ارگومنت رویداد KeyDown (
System.Windows.Forms.KeyEventArgs) دارای سه خصوصیت alt, shift ,control میباشد که نشان دهنده فشرده شدن کلید های متناظر آنهاست.



برای مثال میتوانید به کد زیر نگاهی بکنید.


Private Sub Form1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown
If e.Control And e.Shift Then
If e.KeyCode = Keys.S Then
'...
MsgBox("saved")
End If
End If
End Sub

ali_najari
شنبه 31 تیر 1391, 19:52 عصر
شما باید از این خاصیت استفاده کنید:



If e.KeyCode = Keys.A Then
If e.Modifiers = Keys.Control Then
e.Handled = True
'کد مورد نظر شما
End If
End I