Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net 使用do循环进行Visual Basic变量验证_Vb.net - Fatal编程技术网

Vb.net 使用do循环进行Visual Basic变量验证

Vb.net 使用do循环进行Visual Basic变量验证,vb.net,Vb.net,所以我对VisualBasic不熟悉,我正在为学校做一个项目,用户在文本框(txtnum)中输入一个数字,看看用户是否猜测随机显示的3个数字中的1个或更多。这些数字只有1到9,因为我试图做一个DO循环,我用C++做的,来验证用户的输入,如果是一个数字,如果是1-9,那么如果显示一个消息框告诉用户为什么,但在此之后,msgbox不会消失,因为它仍然使用相同的变量,我无法更新我的变量,因为msgbox不会消失 我使用visual basic 2010 express,并使用windows窗体执行此项

所以我对VisualBasic不熟悉,我正在为学校做一个项目,用户在文本框(txtnum)中输入一个数字,看看用户是否猜测随机显示的3个数字中的1个或更多。这些数字只有1到9,因为我试图做一个DO循环,我用C++做的,来验证用户的输入,如果是一个数字,如果是1-9,那么如果显示一个消息框告诉用户为什么,但在此之后,msgbox不会消失,因为它仍然使用相同的变量,我无法更新我的变量,因为msgbox不会消失

我使用visual basic 2010 express,并使用windows窗体执行此项目


Private Sub btplay_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btplay.Click
        ' A geração de numeros aleatórios inteiros entre 1 e 9

        lbln1.Text = Int(1 + Rnd() * 9) 'generates an integer on first label
        lbln2.Text = Int(1 + Rnd() * 9) 'generates an integer on second label
        lbln3.Text = Int(1 + Rnd() * 9) 'generates an integer on third label

        Do
            Do
                If ((IsNumeric(txtnum.Text) = False)) Then 'check is input is a number
                    MsgBox("Opção inválida!" & vbNewLine & "Por favor insira um número entre 1 e 9!", 0, "Número inválido")
                    txtnum.Clear() 
                    txtnum.Focus()
                End If

            Loop Until (IsNumeric(txtnum.Text) = True) 'segundo loop 

            If ((Int(txtnum.Text) < 0) Or (Int(txtnum.Text) > 10)) Then 'check if input on gap
                MsgBox("Opção inválida!" & vbNewLine & "Por favor insira um número entre 1 e 9!", 0, "Número inválido")
                txtnum.Clear() 
                txtnum.Focus() 
            End If

        Loop While ((Int(txtnum.Text) < 0) Or (Int(txtnum.Text) > 10)) 


            'Validação dos números e atualização da pontuação
            If txtnum.Text = lbln1.Text And txtnum.Text = lbln2.Text And txtnum.Text = lbln3.Text Then
                lblpontos.Text = lblpontos.Text + 50 ' got 3 numbers right 

            ElseIf (txtnum.Text = lbln1.Text And txtnum.Text = lbln2.Text) Or (txtnum.Text = lbln1.Text And txtnum.Text = lbln3.Text) Or (txtnum.Text = lbln2.Text And txtnum.Text = lbln3.Text) Then
                lblpontos.Text = lblpontos.Text + 25 ' got 2 numbers right

            ElseIf txtnum.Text = lbln1.Text Or txtnum.Text = lbln2.Text Or txtnum.Text = lbln3.Text Then
                lblpontos.Text = lblpontos.Text + 10 'got 1 number right

            ElseIf txtnum.Text <> lbln1.Text And txtnum.Text <> lbln2.Text And txtnum.Text <> lbln3.Text Then
                lblpontos.Text = lblpontos.Text - 5 ' hasnt got any number right
            End If
End Sub

私有子btplay_Click(ByVal发送方作为System.Object,ByVal e作为System.EventArgs)处理btplay。单击
“第1和第9条中的数字
lbln1.Text=Int(1+Rnd()*9)'在第一个标签上生成一个整数
lbln2.Text=Int(1+Rnd()*9)'在第二个标签上生成一个整数
lbln3.Text=Int(1+Rnd()*9)'在第三个标签上生成一个整数
做
做
如果((IsNumeric(txtnum.Text)=False)),则“check is input”是一个数字
MsgBox(“Opço inválida!”&Vnewline和“Por favor insira um número entre 1 e 9!”,0,“número inválido”)
txtnum.Clear()
txtnum.Focus()
如果结束
循环直到(IsNumeric(txtnum.Text)=True)“segundo循环
如果((Int(txtnum.Text)<0)或(Int(txtnum.Text)>10)),则“检查间隙上的输入
MsgBox(“Opço inválida!”&Vnewline和“Por favor insira um número entre 1 e 9!”,0,“número inválido”)
txtnum.Clear()
txtnum.Focus()
如果结束
循环While((Int(txtnum.Text)<0)或(Int(txtnum.Text)>10))
“瓦利达·多斯努梅罗斯和阿塔利萨·达蓬图阿诺
如果txtnum.Text=lbln1.Text,txtnum.Text=lbln2.Text,txtnum.Text=lbln3.Text,则
lblpontos.Text=lblpontos.Text+50'对了3个数字
ElseIf(txtnum.Text=lbln1.Text和txtnum.Text=lbln2.Text)或(txtnum.Text=lbln1.Text和txtnum.Text=lbln3.Text)或(txtnum.Text=lbln2.Text和txtnum.Text=lbln3.Text),然后
lblpontos.Text=lblpontos.Text+25'有两个数字是对的
ElseIf txtnum.Text=lbln1.Text或txtnum.Text=lbln2.Text或txtnum.Text=lbln3.Text然后
lblpontos.Text=lblpontos.Text+10'对了1个数字
ElseIf txtnum.Text lbln1.Text和txtnum.Text lbln2.Text和txtnum.Text lbln3.Text然后
lblpontos.Text=lblpontos.Text-5'没有正确的数字
如果结束
端接头

如果要在控制台应用程序中验证输入,您可能希望使用Do/Loop,但由于Windows窗体应用程序是事件驱动的,您只需使用条件If/Then语句即可

如果您想在用户键入时验证输入,则可以使用TextChanged、KeyUp或KeyDown事件,而如果您想在用户“做某事”(如单击按钮)时验证输入,则可以处理“某事”事件(如按钮的单击事件)。这一切都取决于您希望何时验证输入。另一种方法是验证文本框的验证事件中的输入

每当用户做一些事情时,比如单击按钮,我都会亲自进行控件验证。以下是验证以下各项的示例:

  • 输入是一个有效的整数
  • 整数介于1和9之间
  • 例如:

    Private Sub ButtonValidate_Click(ByVal sender As Object, ByVal e As EventArgs) Handles ButtonValidate.Click
        Dim input As Integer
        Dim isValidInteger As Boolean = Integer.TryParse(txtnum.Text, input)
        If (Not isValidInteger) Then
            MessageBox.Show("Please enter a valid Integer.")
        ElseIf (input < 0 OrElse input > 10) Then
            MessageBox.Show("Please enter a valid Integer between 1 and 9.")
        Else
            ' input is a number between 1 and 9
        End If
    End Sub
    
    Private子按钮验证\单击(ByVal sender作为对象,ByVal e作为事件参数)处理按钮验证。单击
    将输入设置为整数
    Dim isValidInteger作为布尔值=整数.TryParse(txtnum.Text,输入)
    如果(不是isValidInteger),则
    Show(“请输入一个有效的整数”)
    ElseIf(输入<0或Else输入>10)然后
    Show(“请输入一个介于1和9之间的有效整数”)
    其他的
    '输入是一个介于1和9之间的数字
    如果结束
    端接头
    
    如果要在控制台应用程序中验证输入,您可能希望使用Do/Loop,但由于Windows窗体应用程序是事件驱动的,您只需使用条件If/Then语句即可

    如果您想在用户键入时验证输入,则可以使用TextChanged、KeyUp或KeyDown事件,而如果您想在用户“做某事”(如单击按钮)时验证输入,则可以处理“某事”事件(如按钮的单击事件)。这一切都取决于您希望何时验证输入。另一种方法是验证文本框的验证事件中的输入

    每当用户做一些事情时,比如单击按钮,我都会亲自进行控件验证。以下是验证以下各项的示例:

  • 输入是一个有效的整数
  • 整数介于1和9之间
  • 例如:

    Private Sub ButtonValidate_Click(ByVal sender As Object, ByVal e As EventArgs) Handles ButtonValidate.Click
        Dim input As Integer
        Dim isValidInteger As Boolean = Integer.TryParse(txtnum.Text, input)
        If (Not isValidInteger) Then
            MessageBox.Show("Please enter a valid Integer.")
        ElseIf (input < 0 OrElse input > 10) Then
            MessageBox.Show("Please enter a valid Integer between 1 and 9.")
        Else
            ' input is a number between 1 and 9
        End If
    End Sub
    
    Private子按钮验证\单击(ByVal sender作为对象,ByVal e作为事件参数)处理按钮验证。单击
    将输入设置为整数
    Dim isValidInteger作为布尔值=整数.TryParse(txtnum.Text,输入)
    如果(不是isValidInteger),则
    Show(“请输入一个有效的整数”)
    ElseIf(输入<0或Else输入>10)然后
    Show(“请输入一个介于1和9之间的有效整数”)
    其他的
    '输入是一个介于1和9之间的数字
    如果结束
    端接头
    
    最简单的方法是每次用户按下按钮时进行流程验证。此外,要猜测的数字应作为字段或属性存储为
    Integer
    类型,而不是标签中的
    String
    类型。最后,使用
    Integer.TryParse()
    将文本输入转换为整数

    Public Class Form1
    
        Shared rng As New Random()
    
        ' Keep track of the guess count
        Public Property Tries As Integer
        ' Store numbers in properties
        Public Property X1 As Integer
        Public Property X2 As Integer
        Public Property X3 As Integer
    
        Private Sub Form1_Load(sender As Object, e As EventArgs) Handles Me.Load
    
            ' Make sure numbers are unique
            Do
                X1 = rng.Next(1, 10)
                X2 = rng.Next(1, 10)
                X3 = rng.Next(1, 10)
            Loop Until X2 <> X1 AndAlso X3 <> X1 AndAlso X2 <> X3
    
            Label1.Text = String.Empty
            Label2.Text = String.Empty
            Label3.Text = String.Empty
    
            Tries = 0
    
        End Sub
    
        Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
            Dim x As Integer
            Dim input = TextBox1.Text
            If input.Length > 0 Then
                If Integer.TryParse(input, x) Then
                    If x <= 0 OrElse x >= 10 Then
                        MessageBox.Show("Input a single digit.", "Game")
                        Exit Sub
                    End If
                    Tries = Tries + 1
                    If x = X1 Then
                        Label1.Text = X1.ToString()
                        MessageBox.Show("Guessed 1st Number.", "Game")
                    ElseIf x = X2 Then
                        Label2.Text = X2.ToString()
                        MessageBox.Show("Guessed 2nd Number.", "Game")
                    ElseIf x = X3 Then
                        Label3.Text = X3.ToString()
                        MessageBox.Show("Guessed 3rd Number.", "Game")
                    Else
                        MessageBox.Show("Guess again.", "Game")
                    End If
    
                    If Label1.Text.Length > 0 AndAlso Label2.Text.Length > 0 AndAlso Label3.Text.Length > 0 Then
                        MessageBox.Show("Guessed all the numbers in " & CStr(Tries) & " tries.", "Game")
                        TextBox1.Enabled = False
                        Button1.Enabled = False
                    End If
                Else
                    MessageBox.Show("Input isn't numeric.", "Game")
                End If
            End If
        End Sub
    End Class
    
    公共类表单1
    共享rng作为新随机数()
    “保持