[英]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.