繁体   English   中英

彩票软件有问题

[英]Having trouble with a lottery software

很抱歉像这样来这里寻找答案,但我真的很难过。 我应该使用 2 个 forms 制作一个应用程序,一个生成自己的数组并将用户输入的数字存储到另一个数组中,然后在第二种表单上显示它们并告诉你有多少数字是共同的

我根本无法让数字显示在第二个表格上,我也无法真正理解如何获得匹配的数字,但是当我可以在表格 2 中正确引用它们时,我会的。我完美地设置了 arrays ,但我什至不能从他们那里调用数字到表格 2。我需要帮助从第一个表格调用 arrays 以显示在下一个表格

表格 1 代码

Public Class Form1
Private Sub btnExit_Click(sender As Object, e As EventArgs) Handles btnExit.Click
    Me.Close()
End Sub
Shared random As New Random()
Dim UserArray(4) As String
Dim LotteryArray(4) As String
Public Sub btnCheck_Click(sender As Object, e As EventArgs) Handles btnCheck.Click
    If txtNumbers.Text <> "" Then
        For i As Integer = 0 To 4
            If UserArray(i) = "" Then
                UserArray(i) = txtNumbers.Text
            End If
        Next
    End If

    For n As Integer = 0 To 9
        Dim RandomNumber As Integer = CInt(Int(Rnd() * 5) + 1)
        LotteryArray(4) = CStr(RandomNumber)
    Next
End Sub
End Class

表格 2 代码

    Public Class Form2
    
    Public Sub btnOk_Click(sender As Object, e As EventArgs) Handles btnOk.Click
    lblUser1.Text = Form1.UserArray(0)
    lblUser2.Text = Form1.UserArray(1)
    lblUser3.Text = Form1.UserArray(2)
    lblUser4.Text = Form1.UserArray(3)
    lblUser5.Text = Form1.UserArray(4)

    lblRand1.Text = Form1.LotteryArray(0)
    lblRand2.Text = Form1.LotteryArray(1)
    lblRand3.Text = Form1.LotteryArray(2)
    lblRand4.Text = Form1.LotteryArray(3)
    lblRand5.Text = Form1.LotteryArray(4)
    If Form1.LotteryArray(4) = Form1.UserArray(4) Then
        MessageBox("CONGRATULATIONS!", "You Are The GRAND PRIZE WINNER!")
    End If
    Me.Close()
End Sub
End Class

我会回答你的第一个问题。 如何让你的数字进入你的第二种形式。

您的主要问题是您用于 arrays 的访问修饰符。 Dim相当于Private ,这意味着该变量仅在 class 中可见。 Friend在程序集中的任何地方都可见。 有关详细信息,请参阅https://docs.microsoft.com/en-us/dotnet/visual-basic/programming-guide/language-features/declared-elements/access-levels 不要更改您的事件过程访问公共。

您必须让用户填写另一个猜测。 Check 按钮中的第一个循环只会输入相同的输入 5 次。 每次单击都需要一个条目,但您需要跟踪您在数组中的位置。 Private NumberOfGuesses As Integer请注意,此变量是Private 它不需要在 Form1 class 之外看到。

我们不需要在每次点击时重新填充LotteryArray ,所以我在 Form.Load 中做了一次。您尝试使用Random class,就像使用旧的 vb6 Random 一样。 .net class 要容易得多。

为了在 Form2 上显示 arrays,我使用了列表框和循环。 节省了一点打字。

如果您对问题的第 2 部分仍有疑问,请发布另一个问题。 展示你尝试过的东西。

Public Class Form1
    Private random As New Random()
    Friend UserArray(4) As Integer
    Friend LotteryArray(9) As Integer
    Private NumberOfGuesses As Integer

    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        For n As Integer = 0 To 9
            Dim RandomNumber As Integer = random.Next(0, 10)
            LotteryArray(n) = RandomNumber
        Next
    End Sub

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        If NumberOfGuesses > 4 Then
            MessageBox.Show("You have used up your guesses")
            Form2.Show()
            Me.Close()
        End If
        If TextBox1.Text <> "" Then
            UserArray(NumberOfGuesses) = CInt(TextBox1.Text)
            NumberOfGuesses += 1
            TextBox1.Clear()
            TextBox1.Focus()
        End If
    End Sub

End Class

Public Class Form2

    Private Sub Form2_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        For Each number In Form1.UserArray
            ListBox1.Items.Add(number)
        Next
        For Each number In Form1.LotteryArray
            ListBox2.Items.Add(number)
        Next
    End Sub

End Class

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM