'отменить доступ к нажатой кнопке
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
'---------------------------------------------