2017-06-23 87 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,并在有效时将其转换。然后,您可以测试转换后的值以确保它不小于零等。由于这是家庭作业,因此我不会为您编写代码,但您应该自己去做这些就足够了或者,如果您觉得您必须,请在线查找示例。