vb.net如何退出验证并将焦点返回到空文本框?

vb.net如何退出验证并将焦点返回到空文本框?,vb.net,Vb.net,我在vb.net中工作,我想退出验证并将焦点返回到带有错误的文本框 它会引发错误,但只要单击“确定”,它就会继续执行程序的其余部分。有什么想法吗?多谢各位 我还应该提到这是在课堂上 'number of tickets property Public Property NumberOfTickets() As String Get Return NumTickets End Get Set(value As String) If (S

我在vb.net中工作,我想退出验证并将焦点返回到带有错误的文本框

它会引发错误,但只要单击“确定”,它就会继续执行程序的其余部分。有什么想法吗?多谢各位

我还应该提到这是在课堂上

   'number of tickets property
Public Property NumberOfTickets() As String
    Get
        Return NumTickets
    End Get
    Set(value As String)
        If (String.IsNullOrEmpty(value)) Then
            MessageBox.Show("Please Enter Number of Tickets")
            Exit Property
        Else
            NumTickets = value
        End If
    End Set
End Property
您可以使用文本框的事件,并在其中说:

e.Cancel = True
这将阻止用户离开文本框。但是,这也会阻止用户关闭表单并执行任何其他操作。一些人认为这样限制用户是不好的做法

请考虑使用,只需通知用户有关错误。


始终尽最大努力让他们完成他们正在做的事情。

不幸的是,我不能让他们不关闭表单。我有多次这样的验证。它们都显示消息,但在类级别,它们不会退出属性并将焦点返回到文本框。@user2079319:您不应该有代码在这样的属性中显示MessageBox。业务逻辑应始终与UI分开。关于表单关闭,在我的应用程序中,用户在单个对话框中会收到关于所有未决错误的警告,并且表单无法保存。有两个选项可用:确定、关闭表单、拒绝更改;或者取消,返回并修复错误。如果表单有效,则添加第三个选项-无论他们是否要提交更改。在任何情况下,焦点都不会锁定在控件中,或者用户无法关闭窗体甚至整个应用程序。