VB.NET学习笔记:WinForm扩展TextBox控件——带数据字符串验证功能,支持正则表达式和自定义函数(二)

这篇博客介绍了如何扩展VB.NET的TextBox控件,以实现数据实时验证和正则表达式验证功能。作者创建了一个验证类,并提供了一种方式在TextBox内容变化时立即验证,同时在点击按钮时验证所有TextBoxEx控件,确保数据准确无误。此外,还展示了界面设计和测试效果。
摘要由CSDN通过智能技术生成

在《VB.NET学习笔记:winform扩展TextBox控件——带数据字符串验证功能,支持正则表达式和自定义函数(一)》中,通过扩展TextBox控件,实现了数据验证功能,不需要开发人员再次对TextBox的内容进行验证,也不需要在相关的按钮里写判断语句,节省了对内容验证的时间,但其只能关联一个按钮,而且只能点击相关按钮才开始对TextBox的内容进行验证。而我需要在TextBox的内容改变时就对该TextBox内容进行验证,最后在点击按钮时再次对全部的TextBox控件内容进行验证,确保提交的数据正确无误,所以对上文中的代码进行了修改,现贴在本文,欢迎批评指正。

自定义事件参数

Namespace Controls
    ''' <summary>
    ''' 为自定义验证事件提供参数
    ''' </summary>
    Public Class CustomerEventArgs
        Inherits EventArgs
        ''' <summary>
        ''' 是否通过验证
        ''' </summary>
        ''' <returns></returns>
        Public Property Validated As Boolean
        ''' <summary>
        ''' 获取或设置被验证的值
        ''' </summary>
        ''' <returns></returns>
        Public Property Value As String
    End Class
End Namespace

接口

Namespace Controls
    Module ZyjqControl
        Public Interface IZyjqControl
            ''' <summary>
            ''' 获取或设置验证控件的类型名称
            ''' </summary>
            ''' <returns></returns>
            Property TypeName As String
            ''' <summary>
            ''' 获取或设置用于验证控件值的正则表达式
            ''' </summary>
            ''' <returns></returns>
            Property RegexExpression As String
            ''' <summary>
            ''' 获取或设置显示的错误信息
            ''' </summary>
            ''' <returns></returns>
            Property ErrorMessage As String
            ''' <summary>
            ''' 获取或设置显示错误信息的Label控件
            ''' </summary>
            ''' <returns></returns>
            Property Label As Label
            ''' <summary>
            ''' 获取或设置是否允许空值,允许空值则为True
            ''' </summary>
            ''' <returns></returns>
            Property AllowEmpty As Boolean
            ''' <summary>
            ''' 获取或设置验证的时候是否除去头尾空格,为True则除去头尾空格
            ''' </summary>
            ''' <returns></returns>
            Property RemoveSpace As Boolean
            ''' <summary>
            ''' 全选控件文本
            ''' </summary>
            Sub SelectAll()
            ''' <summary>
            ''' 引发自定义验证事件
            ''' </summary>
            ''' <param name="ce"></param>
            Sub RaiseCustomerValidated(ByVal ce As CustomerEventArgs)
            ''' <summary>
            ''' 自定义验证事件
            ''' </summary>
            Event CustomerValidated As EventHandler(Of CustomerEventArgs)
        End Interface
    End Module
End Namespace

验证类(共享类)

Imports System.Text.RegularExpressions
Namespace Controls
    Public NotInheritable Class ZyjqValidated
        '由于此类只提供静态方法,因此将默认构造函数设为私有以防止
        '使用“new ZyjqValidated()”创建的实例'。
        Private Sub New()
        End Sub ' New

        ''' <summary>
        ''' 存储相关控件与对应类型名称关系的列表
        ''' </summary>
        Private Shared ht As Hashtable = New Hashtable()

        ''&
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值