加载事件不起作用。 Visual Basic

时间:2015-03-22 19:53:40

标签: forms visual-studio-2012 load

我正在尝试编写彩票应用程序并写出所有代码。一切似乎都很好,除了它应该显示中奖号码和用户号码的部分。弹出ResultsForm时,所有标签都是空白而不是填写数字。任何帮助将不胜感激。我将包括MainForm,ResultsForm和我使用的模块的代码。

Public Class MainForm

Dim rand As New Random

Private Sub MainForm_Load(ByVal sender As System.Object, ByVal e As System.EventArgs)
    GenerateNewLotteryNumbers()
End Sub

Private Sub btnCheckNumbers_Click(sender As Object, e As EventArgs) Handles btnCheckNumbers.Click
    If ValidateUserPicks() Then
        DisplayResults()

    End If
End Sub

Private Sub btnPlayAgain_Click(sender As Object, e As EventArgs) Handles btnPlayAgain.Click
    GenerateNewLotteryNumbers()
    Reset()

End Sub

Private Sub btnExit_Click(sender As Object, e As EventArgs) Handles btnExit.Click
    Me.Close()
End Sub

Sub GenerateNewLotteryNumbers()
    For intCount = 0 To g_intUPPER_SUB
        g_intNumbers(intCount) = rand.Next(10)
    Next
End Sub

Sub Reset()
    txtDigit1.Clear()
    txtDigit2.Clear()
    txtDigit3.Clear()
    txtDigit4.Clear()
    txtDigit5.Clear()

    txtDigit1.Focus()

End Sub

Sub DisplayResults()
    Dim frmResults As New ResultsForm

    frmResults.ShowDialog()

End Sub

Function ValidateUserPicks() As Boolean

    Dim blnIsValid As Boolean = False

    If Integer.TryParse(txtDigit1.Text, g_intUserPicks(0)) And
        g_intUserPicks(0) >= 0 And g_intUserPicks(0) <= 9 Then

        If Integer.TryParse(txtDigit2.Text, g_intUserPicks(1)) And
            g_intUserPicks(1) >= 0 And g_intUserPicks(1) <= 9 Then

            If Integer.TryParse(txtDigit3.Text, g_intUserPicks(2)) And
                g_intUserPicks(2) >= 0 And g_intUserPicks(2) <= 9 Then

                If Integer.TryParse(txtDigit4.Text, g_intUserPicks(3)) And
                     g_intUserPicks(3) >= 0 And g_intUserPicks(3) <= 9 Then

                    If Integer.TryParse(txtDigit5.Text, g_intUserPicks(4)) And
                    g_intUserPicks(4) >= 0 And g_intUserPicks(4) <= 9 Then
                    End If

                    blnIsValid = True
                Else
                    MessageBox.Show("Digit 5: Enter a number between 0 and 9.")

                    txtDigit5.Focus()
                    txtDigit5.SelectAll()
                End If

            Else
                MessageBox.Show("Digit 4: Enter a number between 0 and 9.")
                txtDigit4.Focus()
                txtDigit5.SelectAll()
            End If
        Else
            MessageBox.Show("Digit 3: Enter a number between 0 and 9.")
            txtDigit3.Focus()
            txtDigit3.SelectAll()
        End If
    Else
        MessageBox.Show("Digit 2: Enter a number between 0 and 9.")
        txtDigit2.Focus()
        txtDigit2.SelectAll()
    End If

    Return blnIsValid

End Function

结束班

ResultsForm:

Public Class ResultsForm     Private Sub ResultsForm_Load(ByVal sender As System.Object,ByVal e As System.EventArgs)         DisplayLotteryNumbers()         ShowResults()

End Sub

Private Sub btnOk_Click(sender As Object, e As EventArgs) Handles btnOk.Click
    Me.Close()
End Sub
Sub DisplayLotteryNumbers()
    lblWinningNumber1.Text = g_intNumbers(0).ToString
    lblWinningNumber2.Text = g_intNumbers(1).ToString
    lblWinningNumber3.Text = g_intNumbers(2).ToString
    lblWinningNumber4.Text = g_intNumbers(3).ToString
    lblWinningNumber5.Text = g_intNumbers(4).ToString

    lblYourNumber1.Text = g_intNumbers(0).ToString
    lblYourNumber2.Text = g_intNumbers(1).ToString
    lblYourNumber3.Text = g_intNumbers(2).ToString
    lblYourNumber4.Text = g_intNumbers(3).ToString
    lblYourNumber5.Text = g_intNumbers(4).ToString
End Sub
Sub DisplayWinnerForm()
    Dim frmWinner As New WinnerForm

    frmWinner.ShowDialog()
End Sub
Sub ShowResults()
    Select Case MatchingDigits()
        Case 1
            lblResults.Text = "One Matching Digit."
        Case 2
            lblResults.Text = "Two Matching Digits."
        Case 3
            lblResults.Text = "Three Matching Digits."
        Case 4
            lblResults.Text = "Four Matching Digits."
        Case 5
            lblResults.Text = "All Digits Match!"
            DisplayWinnerForm()
        Case Else
            lblResults.Text = "No Matching Digits."
    End Select
End Sub

Function MatchingDigits() As Integer
    Dim numMatches As Integer

    For intCount = 0 To g_intUPPER_SUB
        If g_intNumbers(intCount) = g_intUserPicks(intCount) Then
            numMatches += 1
        End If
    Next
    Return numMatches
End Function

结束班

模块:

模块LotteryModule     Public Const g_intUPPER_SUB As Integer = 4     公共g_intNumbers(g_intUPPER_SUB)作为整数     Public g_intUserPicks(g_intUPPER_SUB)As Integer 结束模块

0 个答案:

没有答案