Handles MyBase.MouseDown
mouseOffset = New Point(-e.X, -e.Y)
End Sub
Для управления игрой мышью, в панели Properties (для формы Form1) на вкладке Events дважды щёлкаем по имени события MouseMove. Появляется шаблон метода, который после записи нашего кода принимает следующий вид.
Листинг 20.12. Метод-обработчик перемещения мыши.
Private Sub Form1_MouseMove(ByVal sender As System.Object, _
ByVal e As System.Windows.Forms.MouseEventArgs) _
Handles MyBase.MouseMove
If e.Button = Windows.Forms.MouseButtons.Left Then
Dim mousePos As Point = Control.MousePosition
mousePos.Offset(mouseOffset.X, mouseOffset.Y)
Location = mousePos
End If
End Sub
Для управления игрой клавишами клавиатуры, в панели Properties (для формы Form1) на вкладке Events дважды щёлкаем по имени события KeyPress. Появляется шаблон метода, который после записи нашего кода принимает следующий вид.
Листинг 20.13. Метод-обработчик нажатия клавиши.
Private Sub Form1_KeyPress(ByVal sender As System.Object, _
ByVal e As System.Windows.Forms.KeyPressEventArgs) _
Handles MyBase.KeyPress
Select Case e.KeyChar
Case "p"c, "P"c
If paused Then
Restart()
Else
Pause()
End If
Case "m"c, "M"c
If Me.FormBorderStyle = _
Windows.Forms.FormBorderStyle.Fixed3D Then
Me.FormBorderStyle = _
Windows.Forms.FormBorderStyle.None
Me.Menu = Nothing
Else
Me.FormBorderStyle = _
Windows.Forms.FormBorderStyle.Fixed3D
'Me.Menu = Me.MainMenu1
End If
Case Else
' Do nothing.
End Select
End Sub
Чтобы программа периодически через Interval времени дополняла поле игры новыми разноцветными кругами (взамен выбитых игроком кругов), ниже формы дважды щёлкаем по значку для первого таймера Timer1 (или в панели Properties для этого компонента на вкладке Events дважды щёлкаем по имени события Tick). Появляется шаблон метода, который после записи нашего кода принимает следующий вид.
Листинг 20.14. Метод, вызываемый через Interval времени.
Private Sub Timer1_Tick(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles Timer1.Tick
' Add another row to the grid and update the screen.
matrix.AddRow()
matrix.Draw(Me.PictureBox1.CreateGraphics(), _
Me.PictureBox1.BackColor)
End Sub