16-08-16, 07:49 PM
الأكواد التالية سوف تعطيك بعض الأفكار عن كيفية تحريك الأشياء بإستخدام الكيبورد
المثال الأول : تحريك شكل بيضاوي مرسوم علي الفورم و هنا الحركة تتم باستخدام الاسهم
استبدل الأسهم بالحروف التي تريدها
المثال الثاني : تحريك Label موجود علي الفورم
ستلاحظ من الكود اننا هنا لا نحتاج لنرسم الكونترول لأنه موجود بالفعل علي الفورم ولكننا فقط نقوم بتحريك الكونترول
استبدل الأسهم بالحروف التي تريدها
المثال الأول : تحريك شكل بيضاوي مرسوم علي الفورم و هنا الحركة تتم باستخدام الاسهم
استبدل الأسهم بالحروف التي تريدها
كود :
Public Class Form1
Private isMoving As Boolean = False
Private ovalShape As Rectangle = New Rectangle(10, 10, 80, 60)
Private Const speed As Integer = 2
Private Sub Form1_KeyUp(sender As Object, e As KeyEventArgs) Handles MyBase.KeyUp
isMoving = False
End Sub
Private Sub Form1_KeyDown(sender As Object, e As KeyEventArgs) Handles MyBase.KeyDown
isMoving = True
Dim currentLocation As Point = ovalShape.Location
Dim x As Integer = currentLocation.X
Dim y As Integer = currentLocation.Y
If e.KeyCode = Keys.Right Then
x += speed
ElseIf e.KeyCode = Keys.Left Then
x -= speed
ElseIf e.KeyCode = Keys.Up Then
y -= speed
ElseIf e.KeyCode = Keys.Down Then
y += speed
End If
Dim newLocation As Point = New Point(x, y)
ovalShape.Location = newLocation
Invalidate()
End Sub
Private Sub Form1_Paint(sender As Object, e As PaintEventArgs) Handles MyBase.Paint
Dim mode = e.Graphics.SmoothingMode
e.Graphics.SmoothingMode = Drawing2D.SmoothingMode.AntiAlias
e.Graphics.FillEllipse(SystemBrushes.MenuHighlight, ovalShape)
e.Graphics.DrawEllipse(SystemPens.ControlDarkDark, ovalShape)
e.Graphics.SmoothingMode = mode
End Sub
End Classالمثال الثاني : تحريك Label موجود علي الفورم
ستلاحظ من الكود اننا هنا لا نحتاج لنرسم الكونترول لأنه موجود بالفعل علي الفورم ولكننا فقط نقوم بتحريك الكونترول
استبدل الأسهم بالحروف التي تريدها
كود :
Public Class Form1
Private isMoving As Boolean = False
Private Const speed As Integer = 2
Private Sub Form1_KeyUp(sender As Object, e As KeyEventArgs) Handles MyBase.KeyUp
isMoving = False
End Sub
Private Sub Form1_KeyDown(sender As Object, e As KeyEventArgs) Handles MyBase.KeyDown
isMoving = True
Dim currentLocation As Point = Label1.Location
Dim x As Integer = currentLocation.X
Dim y As Integer = currentLocation.Y
If e.KeyCode = Keys.Right Then
x += speed
ElseIf e.KeyCode = Keys.Left Then
x -= speed
ElseIf e.KeyCode = Keys.Up Then
y -= speed
ElseIf e.KeyCode = Keys.Down Then
y += speed
End If
Dim newLocation As Point = New Point(x, y)
Label1.Location = newLocation
End Sub
End Class
