Vb.net 如何将所有验证事件移动到自定义类?
我是编程新手,所以这可能是一个有点奇怪的问题 我有一个带有两个文本框的简单表单。我需要验证用户输入,因此我为此文本框创建了验证事件Vb.net 如何将所有验证事件移动到自定义类?,vb.net,class,validation,Vb.net,Class,Validation,我是编程新手,所以这可能是一个有点奇怪的问题 我有一个带有两个文本框的简单表单。我需要验证用户输入,因此我为此文本框创建了验证事件 Private Sub txtTest_Validating(sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles txtTest.Validating ValidateInputMinMax(CType(sender, Control), e) End Sub
Private Sub txtTest_Validating(sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles txtTest.Validating
ValidateInputMinMax(CType(sender, Control), e)
End Sub
从这个事件处理程序中,我调用私有子ValidateInputMinMax,在这里我使用
ErrorProvider.SetError
及
基于一些验证标准。我有两个这样的处理程序和私有子类,我想从表单类转移到新的自定义类。
这能做到吗
我尝试将所有这些复制到自定义类并用事件声明:
Dim WithEvents txtTest as TextBox
现在我被卡住了。我走对了吗?像这样
Private Sub txtTest_Validating(sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles txtTest.Validating
ValidateInputMinMax((CType(sender), Textbox),e)
End Sub
像这样
Private Sub txtTest_Validating(sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles txtTest.Validating
ValidateInputMinMax((CType(sender), Textbox),e)
End Sub
您需要使用委托
Public Class Form1
Friend WithEvents exampleControl1 As New ExampleControl
Private Sub exampleControl1_Events(ByVal eventNumber As Integer) Handles_
exampleControl1.Event1
End Sub
End Class
Public Class ExampleControl
Inherits System.Windows.Forms.UserControl
Public Event Event1(ByVal eventNumber As Integer)
Private Sub ExampleMethod()
RaiseEvent Event1(1)
End Sub
End Class
您需要使用代理
Public Class Form1
Friend WithEvents exampleControl1 As New ExampleControl
Private Sub exampleControl1_Events(ByVal eventNumber As Integer) Handles_
exampleControl1.Event1
End Sub
End Class
Public Class ExampleControl
Inherits System.Windows.Forms.UserControl
Public Event Event1(ByVal eventNumber As Integer)
Private Sub ExampleMethod()
RaiseEvent Event1(1)
End Sub
End Class
对不起,我不明白这一点。我忘记告诉您,当我将此验证事件从Form1类中移动时,不会触发它。此处理程序仅在Form1类中工作。。除非您添加处理..的控件。。例如,子测试_valid(..)处理txtBox2.Validating,form2.txtBox1.ValidatingSorry,但我不理解这一点。我忘记告诉您,当我将此验证事件从Form1类中移动时,不会触发它。此处理程序仅在Form1类中工作。。除非您添加处理..的控件。。例如子测试_valid(..)处理txtBox2.Validating,form2.txtBox1.ValidatingYvette非常感谢。我会努力让它工作。我将报告我的进展情况。祝你胃口好,伊维特,非常感谢。我会努力让它工作。我将报告我的进展情况。祝你胃口好。