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
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.