Использование глобальной переменной для отображения значения на индикаторе выполнения
Я делаю игру в Visual Basic 2010 и почти завершил ее, за исключением одной проблемы, с которой я столкнулся при использовании глобальных переменных. Я настроил их в модуле, как показано ниже:
Module Module1
Public Structure Maths
Public accuracy As Integer
Public speed As Integer
Public vision As Integer
End Structure
Public Mathsprogress As Maths
End Module
Что я пытаюсь сделать с этими переменными, так это использовать их в одной форме для хранения значений, чтобы я мог перенести эти значения во вторую форму. Для этого я создал вложенные операторы if, которые должны установить значение переменной mathsprogress.accuracy = x
в зависимости от значения "неверно".
'''''''''''CONTINUED''''''''''''''''''
Else : incorrect = incorrect + 1
If incorrect = 0 Then
Mathsprogress.accuracy = 10
ElseIf incorrect < 2 And incorrect > 0 Then
Mathsprogress.accuracy = 9
ElseIf incorrect = 3 Then
Mathsprogress.accuracy = 8
ElseIf incorrect = 4 Then
Mathsprogress.accuracy = 7
ElseIf incorrect = 5 Then
Mathsprogress.accuracy = 6
ElseIf incorrect = 6 Then
Mathsprogress.accuracy = 5
ElseIf incorrect = 7 Then
Mathsprogress.accuracy = 4
ElseIf incorrect = 8 Then
Mathsprogress.accuracy = 3
ElseIf incorrect = 9 Then
Mathsprogress.accuracy = 2
Else
Mathsprogress.accuracy = 1
End If
End If
Но по какой-то неизвестной причине, когда я использую переменную во второй форме, которая должна отображать значение "mathsprogress.accuracy" на индикаторе выполнения, он говорит, что "Значение 0 недопустимо, оно должно быть между минимальным и максимум ", что заставляет меня думать, что значение, сохраненное в операторе IF, не переносится в эту третью форму. Код в третьей форме:
Private Sub pbaccuracy_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles pbaccuracy.Click
pbaccuracy.Value = Mathsprogress.accuracy
End Sub
Я знаю, что переменные установлены правильно, потому что он работает, когда я устанавливаю mathsprogress.accuracy = 10 в загрузке формы первой формы. Моя проблема может заключаться в том, где я разместил кусок утверждений IF, кто-нибудь может объяснить?
Спасибо