Выбрать главу

 'отменить доступ к нажатой кнопке

 If (selection <> 1) Then

  'Выбранный вариант ответа является неправильным

  buttonClicked.Enabled = False

 Else

  'Пользователь выбрал правильный ответ, продолжить игру

  StateChangeForGameUI(GameUIState.waitForNextQuestion)

 End If

End Sub

'Абстракция, задающая текст вопросов

Sub setQuestionText(ByVal textIn As String)

 textBoxAskQuestion.Text = textIn

End Sub

'----------------------------------------------------------------

'ОБРАБОТЧИК СОБЫТИЙ: Пользователь желает увидеть следующий вопрос

'----------------------------------------------------------------

Private Sub buttonAskQuestion_Click(ByVal sender As Object, _

 ByVal e As System.EventArgs) Handles buttonAskQuestion.Click

 SetTextForVocabularyQuestion()

 StateChangeForGameUI(GameUIState.waitForUserToStateKnowledge)

End Sub

'---------------------------------------------------------------------

'ОБРАБОТЧИК СОБЫТИЙ:

'Пользователь желает ответить на отображенный вопрос и сообщить, какой

'наиболее сложный уровень является для него приемлемым

'---------------------------------------------------------------------

Private Sub buttonShowAnswers AdvancedVersion_Click( _

 ByVal sender As Object, ByVal e As System.EventArgs) _

 Handles buttonShowAnswers_AdvancedVersion.Click

 'Установить состояние игры для отображения вариантов выбора

 StateChangeForGameUI( _

  GameUIState.waitForUserToAnswerMultipleChoice)

End Sub

'---------------------------------------------------------------------

'ОБРАБОТЧИК СОБЫТИЙ:

'Пользователь желает ответить на отображенный вопрос и сообщить, какой

'наиболее легкий уровень является для него приемлемым

'---------------------------------------------------------------------

Private Sub buttonShowAnswers_SimpleVersion_Click( _

 ByVal sender As Object, ByVal e As System.EventArgs) _

 Handles buttonShowAnswers_SimpleVersion.Click

 'Установить состояние игры для отображения вариантов выбора

 StateChangeForGameUI( _

  GameUIState.waitForUserToAnswerMultipleChoice)

End Sub

'ОБРАБОТЧИК СОБЫТИЙ: Был выполнен щелчок на кнопке выбора варианта ответа

Private Sub buttonAnswer0_Click(ByVal sender As Object, ByVal _

 e As System.EventArgs) Handles buttonAnswer0.Click

 evaluateMultipleChoiceAnswer(buttonAnswer0, 0)

End Sub

'ОБРАБОТЧИК СОБЫТИЙ: Был выполнен щелчок на кнопке выбора варианта ответа

Private Sub buttonAnswer1_Click(ByVal sender As Object, ByVal _

 e As System.EventArgs) Handles buttonAnswer1.Click

 evaluateMultipleChoiceAnswer(buttonAnswer1, 1)

End Sub

'ОБРАБОТЧИК СОБЫТИЙ: Был выполнен щелчок на кнопке выбора варианта ответа

Private Sub buttonAnswer2_Click(ByVal sender As Object, ByVal _

 e As System.EventArgs) Handles buttonAnswer2.Click

 evaluateMultipleChoiceAnswer(buttonAnswer2, 2)

End Sub

'ОБРАБОТЧИК СОБЫТИЙ: Был выполнен щелчок на кнопке выбора варианта ответа

Private Sub buttonAnswer3_Click(ByVal sender As Object, ByVal _

 e As System.EventArgs) Handles buttonAnswer3.Click

 evaluateMultipleChoiceAnswer(buttonAnswer3, 3)

End Sub

'ОБРАБОТЧИК СОБЫТИЙ: Был выполнен щелчок на кнопке выбора варианта ответа

Private Sub buttonAnswer4_Click(ByVal sender As Object, ByVal _

 e As System.EventArgs) Handles buttonAnswer4.Click

 evaluateMultipleChoiceAnswer(buttonAnswer4, 4)

End Sub

'ОБРАБОТЧИК СОБЫТИЙ: Был выполнен щелчок на кнопке выбора варианта ответа

Private Sub buttonAnswer5_Click(ByVal sender As Object, ByVal _

 e As System.EventArgs) Handles buttonAnswer5.Click

 evaluateMultipleChoiceAnswer(buttonAnswer5, 5)

End Sub

Листинг 13.2. Динамическое создание элементов управления на форме во время выполнения         

'-------------------------------------

'Счетчик количества создаваемых кнопок

'-------------------------------------

Private m_nextNewButtonIndex As Integer

'---------------------------------------------------------------

'ОБРАБОТЧИК СОБЫТИЙ: Обработчик щелчка на кнопке, которая

' имеется на нашей форме.

'

'Эта функция создает новую кнопку, присоединяет ее к нашей форме

'и подключает обработчик события щелчка для нее

'---------------------------------------------------------------

Private Sub buttonCreateNewButtons_Click(ByVal sender As _

 System.Object, ByVal e As System.EventArgs) _

 Handles buttonCreateNewButtons.Click

 'Впоследствии мы начнем создавать новые кнопки, начиная

 'снизу экрана, поэтому ограничиваем их количество восемью

 If (m_nextNewButtonIndex > 8) Then

  Return

 End If

 '----------------------------------------------------

 'Создать кнопку (еще не присоединенную к нашей форме)

 'установить ее местоположение, размеры и текст

 '----------------------------------------------------

 Const newButtonHeight As Integer = 15

 Dim newButton As System.Windows.Forms.Button

 newButton = New System.Windows.Forms.Button

 newButton.Width = 100

 newButton.Height = newButtonHeight

 newButton.Left = 2

 newButton.Top = (newButtonHeight + 2) * m_nextNewButtonIndex

 newButton.Text = "New Button " + _

  m_nextNewButtonIndex.ToString()

 '----------------------------------------------------

 'Присоединить обработчик к событию щелчка для данного

 'элемента управления.

 '----------------------------------------------------

 AddHandler newButton.Click, _

  AddressOf Me.ClickHandlerForButtons

 '---------------------------------------------