WinForm窗体一次性数据合法性验证(思路分析)

本文介绍了如何利用WinForm控件的Tag属性结合正则表达式进行数据合法性验证。通过设置不同类型的Tag属性,如数字、字符串和日期,实现对TextBox输入的约束。在验证过程中,使用sysErrors集合类存储错误,并通过Merge方法合并错误。当验证失败时,显示错误信息并聚焦第一个出错的控件。
摘要由CSDN通过智能技术生成

在Windows窗体编程中,不知道大家用过控件的Tag属性没有,Tag属性代表与控件关
联的用户定义数据,每个控件都有Tag属性,可以结合控件Tag属性以及正则表达式
进行数据合法性验证。方法如下:
 
1、数据无论是什么类型,录入可以全部采用文本框录入,制定数据验证的规则:
 
Tag属性代表与控件关联的用户定义数据,此处用来一次性验证窗体上的所有文本框
控件的数据合法性。
 
TextBox控件Tag属性设置如下:
 
        I.如果TextBox中要填入的是数字,该TextBox控件的Tag属性设置格式为:
 
                1;控件名称;1;0,999;2;
 
                说明:
 
                        1 表明要填入的是数字
 
                        控件名称:可以是字段名称或者文本框前面的Label的文本
 
                        1 表明是否必填,如果不是必填则用 0
 
                        0,999 表明数字的取值范围
 
                        2 表明小数位数
 
        II.如果TextBox中要填入的是字符串,该TextBox控件的Tag属性设置格式为:
 
                2;控件名称;1;1,20;
 
                说明:
 
                        2 表明要填入的是字符串
 
                        控件名称:可以是字段名称或者文本框前面的Label的文本
 
                        1 表明是否必填,如果不是必填则用 0
 
                        1,20 表明字符串的的最小和最大长度
 
        III.如果TextBox中要填入的是日期,该TextBox控件的Tag属性设置格式为:
 
                3;控件名称;1;2000-1-1,2004-1-1;
 
                说明:
 
                        3 表明要填入的是日期
 
                        控件名称:可以是字段名称或者文本框前面的Label的文本
 
                        1 表明是否必填,如果不是必填则用 0
 
                        2000-1-1,2004-1-1 表明允许的最小日期和最大日期
 
2、实现一个集合类sysErrors(用于存放所有在控件数据合法性验证时返回的错误
),一个sysErrors类中可以包含多条sysError(一条验证控件数据合法性时产生的
错误),实现sysErrors的Merge方法(类似与DataSet的Merge方法,用于合并sysE
rrors,将两个错误集合合并到一起)3、实现一个Validate类,在此类中实现如下
方法:

 
                
/// <summary>
 
                
/// 功能:判断一个控件中输入数据的合法性
 
                
/// 原理:根据控件的Tag属性存放的数据规范来验证数据的合法性,

 
                         所有验证控件的函数都是调用此函数来执行验证。
 
                    步骤:判断由控件的Tag属性判断控件中输入数据的数据类型,
 
                         使用正则表达式匹配验证检查控件Tag属性设置是否正确,
 
                         对于应输入字符串的控件:
 
                                判断是否必填;
 
                                判断是否有非法字符;
 
                                判断字符最大最小长度;
 
                         对于应输入字符串的控件:
 
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值