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