ورود

View Full Version : حركت با صفحه كليد



vafanezhad
سه شنبه 04 بهمن 1390, 10:27 صبح
چه طوري ميشه با صفه كليد lablelرا حركت داد ؟

program2vb
سه شنبه 04 بهمن 1390, 11:01 صبح
چه طوري ميشه با صفه كليد lablelرا حركت داد ؟

یا باید در رویداد keyDown فرمت بنویسی


Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = 37 Then
Shape1.Left = Shape1.Left - 10
End If
End Sub


یا هم با استفاده از تابع Api : GetAsyncKeyState این کارو بکنی که در این روش نیاز به یک تایمر داری .


Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer 'Key press API

Private Sub Timer1_Timer()
If GetAsyncKeyState(37) <> 0 Then
Shape1.Left = Shape1.Left - 10
End If
End Sub


البته تو روش اول هم میتونی از تایمر استفاده کنی ولی من روش دوم رو بهت پیشنهاد میکنم بهتره

ولی اگه خواستی از روش اول با تایمر استفاده کنی تو keyDown تایمر رو فعال کن و تو بخش keyup تایمر رو غیر فعال کن

برای مثال میتونی به این ( راهنمایی برخورد شئ (http://barnamenevis.org/showthread.php?318655-%D8%B1%D8%A7%D9%87%D9%86%D9%85%D8%A7%DB%8C%DB%8C-%D8%A8%D8%B1%D8%AE%D9%88%D8%B1%D8%AF-%D8%B4%D8%A6) ) قسمت هم سر بزنی .

موفق و پیروز باشی

یا علی