2017-06-23 69 views
0

我上一學期參加了入門級計算機編程課程,而且我的最終項目出現問題。我必須在visual basic GUI中設計一個程序,要求玩家在有限數量的猜測中準確猜測1-100之間的數字。Visual Basic GUI輸入驗證

我的第一種形式要求用戶設置允許的猜測次數。它有一個文本框和一個「回車」按鈕,以及其他我已經開始工作的按鈕。

我試圖讓代碼工作,將驗證允許的猜測上的輸入。具體而言,如果玩家輸入字母或特殊字符而不是數字,或者輸入小於零或大於二十的數字,我想要一個消息框彈出。這是我有什麼:

Public Class Noofguesses 
    Shared maxguesscnt As Integer 
    Private Sub Numberofguesses_TextChanged(sender As Object, e As EventArgs) Handles Numberofguesses.TextChanged 

    End Sub 

    Private Sub Quit_Click(sender As Object, e As EventArgs) Handles Quit.Click 
     End 
    End Sub 

    Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click 
     Form3.Show() 
    End Sub 

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click 
     If Val(Numberofguesses) > 20 Then MsgBox("Number of Guesses Cannot Exceed 20") 
     If Val(Numberofguesses) < 0 Then MsgBox("Number of Guesses Must Be Greater Than 0") 
     If Not IsNumeric(Numberofguesses) Then MsgBox("Entry Cannot be Letters or Characters") 
     Me.Close() 
     Form2.Show() 
    End Sub 
End Class 

我在做什麼錯了?請告訴我。

感謝

+0

我無法強調這一點。切勿使用End來退出應用程序。如果你想退出一個WinForms應用程序,然後在主窗體上調用'Application.Exit'或者調用'Close'。 – jmcilhinney

回答

1

我一般會建議使用NumericUpDown而不是TextBox,在這種情況下,不需要驗證。雖然這是一項任務,但我猜測驗證TextBox是一項要求。在這種情況下,您應該使用Integer.TryParse來驗證String,即TextBoxText,並在有效時將其轉換。然後,您可以測試轉換後的值以確保它不小於零等。由於這是家庭作業,因此我不會爲您編寫代碼,但您應該自己去做這些就足夠了或者,如果您覺得您必須,請在線查找示例。