Использование глобальной переменной для отображения значения на индикаторе выполнения

Я делаю игру в 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, кто-нибудь может объяснить?

Спасибо

0 ответов

Другие вопросы по тегам