2015-05-25 93 views
0

讓我設置場景: 我正在爲學校創建時間表練習測驗,並需要將變量與TextBox1.Text的值進行比較。該變量的類型Integer將文本框文本值與整數比較不起作用

這裏是我的代碼:

Dim answer As Integer = (num1 * num2) 

    If TextBox1.Text = answer.ToString Then 
     question() 
    Else 
     Dim typedAnswer As String = TextBox1.Text 
     timeCheck.Stop() 
     MsgBox("Sorry, " & typedAnswer & " is not the correct answer. Please try again.") 
     timeCheck.Start() 
    End If 

澄清:

question是我創造

answer子是問題的答案爲Integer

num1是一個數字是多iplied

num2是乘以

對方號碼每當我按下觸發此代碼的按鈕,只是激活意味着答案是不正確的代碼,即使它是。例如:我得到問題9 multiplied by 5。然後我會輸入45,但代碼會激活代碼的底部。

任何想法?

+0

num1和num2的類型是什麼? – Muhammad

+0

@Muhammad他們是整數 –

+1

我試過你的代碼,它對我來說是一樣的,我相信這個問題與你沒有在這裏發佈的其他東西有關。 – Muhammad

回答

0

我找到了原因。我每次撥打num1num2,他們的值是rnd.Next(1, 12),rnd等於New Random()這意味着它每次都會產生新的數字!對於那個很抱歉!菜鳥錯誤!

1

嘗試比較像

If val(TextBox1.Text) = answer Then 
     question() 
    Else 
     Dim typedAnswer As String = TextBox1.Text 
     timeCheck.Stop() 
     MsgBox("Sorry, " & typedAnswer & " is not the correct answer. Please try again.") 
     timeCheck.Start() 
    End If 

使用數值爲字符串不好practice.hope它幫助。

+0

仍然完全一樣。 –

+0

是'答案'的價值與您輸入的文字相同?放置斷點並檢查。 –

+0

'val(textbox1.text)'和'answer'是否相等? –

1

下面的代碼可以幫助你:

If CInt(TextBox1.Text) = answer Then 
    ... 
End If 

這應該很好地工作。