• 窗体控件的验证


    自定义了一个窗体控件验证的类

    /// <summary>
        /// 窗体控件的验证
        /// </summary>
        public class WinFormValidating
        {
            /// <summary>
            /// 路径验证
            /// </summary>
            /// <returns></returns>
            public static bool validtePath(Control ctrl,ErrorProvider ep)
            {
                string pattern = @"^[a-zA-Z]:(((\\(?! )[^/:*?<>\""|\\]+)+\\?)|(\\)?)\s*$"; 
                Regex myRegex = new Regex(pattern);
                bool isR = myRegex.IsMatch(ctrl.Text);
                if (!isR)
                    ep.SetError(ctrl, "所输入的路径不合法");
                return isR;
            }
    
            /// <summary>
            /// 验证是否为空
            /// </summary>
            /// <param name="ctrl"></param>
            /// <param name="ep"></param>
            /// <returns></returns>
            public static bool validateNull(Control ctrl, ErrorProvider ep)
            {
                string content = ctrl.Text;
                if ((content == null) || content.Trim().Length == 0)
                {
                    ep.SetError(ctrl, "不能为空");
                    return false;
                }
                return true;
            }
    
            /// <summary>
            /// 验证窗体所有控件
            /// </summary>
            /// <param name="f1"></param>
            public static bool validateAll(Form f1)
            {
                //有一个控件没通过验证,返回false
                bool isR = true;
                foreach (Control ctrl in f1.Controls)
                {
                    ctrl.Focus();
                    bool tempB= f1.Validate();
                    if (!tempB)
                        isR = tempB;
                }
                return isR;
            }
    
            /// <summary>
            /// 验证整数
            /// </summary>
            /// <param name="ctrl"></param>
            /// <param name="ep"></param>
            /// <returns></returns>
            public static bool validateInteger(Control ctrl, ErrorProvider ep)
            {
                string context = ctrl.Text;
                string pattern = @"^([0-9]{1,})$";
                Regex myRegex = new Regex(pattern);
                bool isR = myRegex.IsMatch(context);
                if (!isR)
                    ep.SetError(ctrl, "所输入的不是有效的整数");
                return isR;
            }
    
            /// <summary>
            /// 验证正浮点数
            /// </summary>
            /// <param name="?"></param>
            /// <param name="ep"></param>
            /// <returns></returns>
            public static bool validatePositiveFloat(Control ctrl,ErrorProvider ep)
            {
                string context = ctrl.Text;
                string pattern = @"^[1-9]d*.d*|0.d*[1-9]d*$";
                Regex myRegex = new Regex(pattern);
                bool isR = myRegex.IsMatch(context);
                if (!isR)
                    ep.SetError(ctrl, "所输入的不是有效的整数");
                return isR;
            }
        }
    

     需要验证的文本框的验证事件示例如下:

      private void txtOutPath_Validating(object sender, CancelEventArgs e)
            {
                bool bt = WinFormValidating.validtePath(txtOutPath,errorProvider1);
                if (!bt)
                    e.Cancel = true;
            }
    
  • 相关阅读:
    Node.js 基于 ursa 模块的 RSA 加密解密(已与IOS,Android实现加密通信)
    Mac安装SecureCRT
    lodash underscore 对象数组排序 sortBy 小记
    Spring5--@Indexed注解加快启动速度
    spring的元注解
    RxJava原理学习
    RabbitMQ知识点一
    消息中间件知识点
    Android打开doc、xlsx、ppt等office文档解决方案
    IT观察】网络通信、图片显示、数据库操作……Android程序员如何利用开源框架
  • 原文地址:https://www.cnblogs.com/DayDreamEveryWhere/p/2998700.html
Copyright © 2020-2023  润新知