0
Public Class Form1
Dim num1 As Integer = CInt(Int((10 * Rnd()) + 1))
Dim num2 As Integer = CInt(Int((10 * Rnd()) + 1))



End Sub
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
    TextBox2.Text = num1 & "*" & num2
End Sub

Private Sub TextBox1_TextChanged(sender As System.Object, e As System.EventArgs) Handles TextBox1.TextChanged

End Sub
Private Sub Button2_Click(sender As System.Object, e As System.EventArgs) Handles Button2.Click
    If TextBox1.Text = num1 * num2 Then
        Label2.Text = "Correct!!11"
    Else
        Label2.Text = "Incorrect, sorry about that"
    End If
End Sub

クラス終了

このコードを実行すると、質問が 1 つだけ生成されます。これは 6*8 です。48 を入力すると動作しますが、もう一度ボタンをクリックしても別の質問は生成されません。6*8 のみが生成されます。1 から 10 までのランダムな掛け算の質問を生成できるようにする必要があります

4

2 に答える 2

3

num1フォームのインスタンスが初期化されるときに生成するnum2のは 1 回だけなので、ボタンをクリックするたびに同じ値が再利用されます。

ボタンがクリックされるたびに新しい値を生成する必要があります。

Dim num1 As Integer
Dim num2 As Integer

Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
    num1 = CInt(Int((10 * Rnd()) + 1))
    num2 = CInt(Int((10 * Rnd()) + 1))
    TextBox2.Text = num1 & "*" & num2
End Sub
于 2013-06-11T13:58:54.197 に答える