Vb.net 根据文本框的输入检查将焦点放在文本框上
我希望我的程序检查文本框中的输入是否满足特定条件。如果不满足目标条件,光标应重新聚焦到该特定文本框上 我的代码:Vb.net 根据文本框的输入检查将焦点放在文本框上,vb.net,textbox,messagebox,buttonclick,Vb.net,Textbox,Messagebox,Buttonclick,我希望我的程序检查文本框中的输入是否满足特定条件。如果不满足目标条件,光标应重新聚焦到该特定文本框上 我的代码: Private Sub ButtonSubmit_Click(sender As Object, e As EventArgs) Handles ButtonSubmit.Click EnterVotes.LabelCan1.Text = CandName1.Text EnterVotes.Labelcan2.Text = CandName2.Text Ent
Private Sub ButtonSubmit_Click(sender As Object, e As EventArgs) Handles ButtonSubmit.Click
EnterVotes.LabelCan1.Text = CandName1.Text
EnterVotes.Labelcan2.Text = CandName2.Text
EnterVotes.LabelCan3.Text = CandName3.Text
EnterVotes.LabelCan4.Text = CandName4.Text
EnterVotes.LabelCan5.Text = CandName5.Text
If CandName1.Text = "" Then
MessageBox.Show("Please enter a name in Candidate 1")
End If
loading.Show()
Me.Hide()
如果CandName1.Text=则//在此处显示消息//CandName1.focus///返回该文本框,否则//显示消息
消息在此结束,如果
使用方法focus返回并重新写入该文本框实际上非常简单 只需检查文本的值是否大于1 然后把焦点放在文本框上 这里有一个例子
if txtbox.text.value < 1 then
messagebox.show("You must enter data for textbox")
txtbox.focus()
end if
然后,为您正在使用的每个文本框使用continue方法,可以使用一些linq来输入您的姓名
Dim Candidate() As TextBox
Candidate = Me.Controls.OfType(Of TextBox)().Where(Function(c) c.Name.Contains("CandName")).ToArray()
Dim i As Integer = 0
While i < Candidate.Count
If(Candidate(i).text.value < 1)
MessageBox.Show("Please enter a name in Candidate " & (i + 1).ToString())
Candidate(i).Focus()
Exit While
End If
i += 1
End While
这样你可以一次检查所有的候选人。这是未经测试的代码,但我认为它应该可以工作
你可以随意使用和编辑它,在这一点上它非常灵活。我认为这可能是一种方式,但效率不高
If CandName1.Text = "" Then
MessageBox.Show("Please enter a name in Candidate 1")
CandName1.Focus()
Else
CandName2.Focus()
End If
If CandName2.Text = "" Then
MessageBox.Show("Please enter an name in Candidate 2")
CandName3.Focus()
Else
CandName3.Focus()
End If
If CandName3.Text = "" Then
MessageBox.Show("Please enter a name in Candidate 3")
CandName3.Focus()
Else
CandName4.Focus()
End If
If CandName4.Text = "" Then
MessageBox.Show("Please enter a name in candidate 4")
CandName4.Focus()
Else
CandName5.Focus()
End If
If CandName5.Text = "" Then
MessageBox.Show("Pleae enter a name in candidat 5")
CandName5.Focus()
Else
loading.Show()
End If
。。。五个人
loading.Show()
Me.Hide()
您希望确保尽早使用Return语句退出此操作,以避免接触到代码:
loading.Show()
Me.Hide()
请注意,CandName1.Text=非常不可靠。比如CandName1.Text.Trim.Length谢谢你的帮助。我已经试过了,但下一部分的程序开始了。因为当按下提交按钮时,我有一个显示下一个表单的按钮,它告诉我文本框中没有任何内容,但也会加载下一个表单。是否有一个“如果我可以显示下一个表单”,以便在显示下一个表单之前检查所有文本框?我已经这样做了,但是现在消息框不动了!!我离解决方案越来越近了。谢谢你的帮助。当CandName1.Text=MessageBox.Show时,请在候选项1 CandName1.Focus中输入一个名称。加载时结束。Show Me.HideSorry对于延迟响应,听起来您可能需要了解一些基础知识。
loading.Show()
Me.Hide()