Vb.net 使用do循环进行Visual Basic变量验证
所以我对VisualBasic不熟悉,我正在为学校做一个项目,用户在文本框(txtnum)中输入一个数字,看看用户是否猜测随机显示的3个数字中的1个或更多。这些数字只有1到9,因为我试图做一个DO循环,我用C++做的,来验证用户的输入,如果是一个数字,如果是1-9,那么如果显示一个消息框告诉用户为什么,但在此之后,msgbox不会消失,因为它仍然使用相同的变量,我无法更新我的变量,因为msgbox不会消失 我使用visual basic 2010 express,并使用windows窗体执行此项目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窗体执行此项
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事件,而如果您想在用户“做某事”(如单击按钮)时验证输入,则可以处理“某事”事件(如按钮的单击事件)。这一切都取决于您希望何时验证输入。另一种方法是验证文本框的验证事件中的输入
每当用户做一些事情时,比如单击按钮,我都会亲自进行控件验证。以下是验证以下各项的示例:
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事件,而如果您想在用户“做某事”(如单击按钮)时验证输入,则可以处理“某事”事件(如按钮的单击事件)。这一切都取决于您希望何时验证输入。另一种方法是验证文本框的验证事件中的输入
每当用户做一些事情时,比如单击按钮,我都会亲自进行控件验证。以下是验证以下各项的示例:
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作为新随机数()
“保持