窗体控件的验证

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

/// <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;
        }

 

 

 

转载于:https://www.cnblogs.com/DayDreamEveryWhere/archive/2013/04/03/2998700.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值