本文转载:http://blog.csdn.net/ziyouli/article/details/7583824

此篇博文不错:http://blog.csdn.net/sony0732/article/details/2502858

该控件使用的是visual studio2010开发,对TextBox进行了改写,附带了验证功能,不需要开发人员再次对TextBox的内容进行验证,也不需要在相关的按钮里写判断语句,节省了对内容验证的时间,下面为大家介绍下控件的功能和用法。

1. 先创建一个项目,在工具栏里点击鼠标右键,弹出菜单中选择“选择项”,接着在弹出的窗口中选择“.net framework组件”面板,点击下面“浏览”按钮后选中“TzhTechUcLibrary.dll”,点击确定,这样就将控件添加到工具栏里了(不要怪我啰嗦哈,要考虑新手):

2. 在Form1窗体上,添加2个Groupbox控件,7个Label,6个RegexTextBox和2个Button,如图所示:

3. 分别设置regexTextBox1~5的“验证”栏属性为如下图示:

regexTextBox1(正则表达式为:^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*):

regexTextBox2(正则表达式为:^[+-]?\d*[.]?\d*$):

regexTextBox3(正则表达式为:^[+-]?\d*[.]?\d*$):

regexTextBox4(正则表达式为:^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*):

regexTextBox5(注意,Validate属性设置为了Customer):

regexTextBox6(正则表达式为:^[+-]?\d*[.]?\d*$):

4. 双击button1,编写事件:

  1. private void button1_Click(object sender, EventArgs e)
  2. {
  3. MessageBox.Show("button1所有文本框通过验证");
  4. }

button2事件:

  1. private void button2_Click(object sender, EventArgs e)
  2. {
  3. MessageBox.Show("button2所有文本框通过验证");
  4. }

regexTextBox5切换到事件面板,找到“验证”项,双击CustomerValidated:

编写代码:

  1. private void regexTextBox5_CustomerValidated(object sender, TzhTechUcLibrary.CustomerEventArgs e)
  2. {
  3. if (e.Value.Length < 6 || e.Value.Length > 16)
  4. {
  5. e.ErrorMessage = "输入的字符串长度必须要在6~16位之间";
  6. e.Validated = false;
  7. }
  8. }

到此为止,界面设置全部完成,接下来运行程序查看结果:

点击button1后产生的结果:

regexTextBox1允许为空,所有没有输入则不验证:

regexTextBox1输入了不合法的邮箱格式:

regexTextBox3没有输入错误信息显示在label7上:

regexTextBox3不满足正则表达式的情况:

regexTextBox4不允许为空,文本框背景出现警告色:

全部验证通过后,执行了button1_Click事件:

点击button2产生的效果:

regexTextBox5调用的是自定义验证事件CustomerValidated进行验证:

该控件的最大优势在于开发人员无需在对文本框进行任何的验证,也不用编写任何代码进行处理,简化了代码,加快开发速度。

之前的控件版本有问题,重新修改了一版上传了,最新下载地址:控件演示下载

核心源码

修正了验证失败后还会执行按钮事件的错误,添加了显示样式Icon,优化部分代码,并修改了部分错误代码。

WinForm自定义验证控件的更多相关文章

  1. [转].net自定义验证控件CustomValidator的使用

    本文转自:http://tech.cncms.com/web/aspnet/96310.html CustomValidator验证控件,可以自定义验证函数,实现其它几个验证控件不能实现的验证规则,最 ...

  2. asp.net中自定义验证控件

    在windows2003中,可能iis版本太底,不支持TextBox的类型设为Number类型,所以会报错,所以去掉后直接用验证控件来控制必须输入数字好了. <asp:RegularExpres ...

  3. Winform自定义键盘控件开发及使用

    最近有学员提出项目中要使用键盘控件,系统自带的osk.exe不好用,于是就有了下面的内容: 首先是进行自定义键盘控件的开发,其实核心大家都知道,就是利用SendKeys.Send发送相应 的字符,但是 ...

  4. Winform自定义分页控件的实现

    实现效果 有点丑陋 但是功能是没问题的 测试过 实现思路 先创建一个用户控件 代码实现 public partial class PagerControl : UserControl { ; /// ...

  5. winform 自定义分页控件 及DataGridview数据绑定

    分页效果如上图所示,用到的控件均为基本控件 ,其方法如下 右击项目-添加-新建项 选择用户控件 然后在用户控件中拖入所需要的Label,Button,Text 用户控件全部代码: using Syst ...

  6. winform自定义分页控件

    1.控件代码: public partial class PagerControl : UserControl { #region 构造函数 public PagerControl() { Initi ...

  7. winform自定义日期控件,要求可以手动输入日期DatePicker

    要求:文本框中能手动输入数字,向上箭头根据鼠标位置给年月日递增,向下箭头递减 一:页面加载时: private void FlatDatePicker_Load(object sender, Even ...

  8. C# winform自定义Label控件使其能设置行距

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.D ...

  9. WINFORM 自定义开关按钮控件-

    本文章转载:http://www.cnblogs.com/feiyangqingyun/archive/2013/06/15/3137597.html OK,大工告成,上图演示效果. 源码下载:htt ...

随机推荐

  1. SGU 220.Little Bishops(DP)

    题意: 给一个n*n(n<=10)的棋盘,放上k个主教(斜走),求能放置的种类总数. Solution: 一眼看上去感觉是状压DP,发现状态太多,没办法存下来... 下面是一个十分巧妙的处理: ...

  2. SGU 276 Andrew's Troubles

    简单的题.直接找题意来就好了. #include <iostream> #include <cstdio> using namespace std; int s, n, ans ...

  3. Xcode 使用自定义字体

    添加对应的字体(.ttf或.odf)到工程的resurce,使用cocos2d中的FontLabel库,FontLabel继承于UILabel,象UILabel一样使用就好了 fontName直接使用 ...

  4. 怎样使CSS3中的animation动画当每滑到一屏时每次都运行

    这个得结合js来做的.比如这里有3个层,js判断滚动到当前层位置的时候给其加上一个class即可,而加的这个class就是带css3执行动画的 class <div id="a1&qu ...

  5. jQuery 树形结构

    强大的jquery.ztree树形菜单插件支持多种树形菜单导航 http://www.17sucai.com/pins/2259.html 演示: http://www.17sucai.com/pin ...

  6. [ZHUAN]Flask学习记录之Flask-SQLAlchemy

    From: http://www.cnblogs.com/agmcs/p/4445583.html 各种查询方式:http://www.360doc.com/content/12/0608/11/93 ...

  7. TatukGIS - GisDefs - CanonicalSQLName 函数

    函数名称  CanonicalSQLName 所在单元  GisDefs 函数原型  function CanonicalSQLName(const _name: String; const _tem ...

  8. C语言结构体(struct)使用方法

    基本定义:结构体,通俗讲就像是打包封装,把一些变量有共同特征(比如同属于某一类事物的属性)的变量封装在内部,通过一定方法访问修改内部变量. 结构体定义: 第一种:只有结构体定义 struct stuf ...

  9. O-C浮点数转化整数

    1.简单粗暴,直接转化 float f = 1.5; int a; a = (int)f; NSLog("a = %d",a); 输出结果是1.(int)是强制类型转化,丢弃浮点数 ...

  10. 转: 静态模式makefile中$(cobjs): $(obj)/%.o: $(src)/%.c

    4.12 静态模式静态模式规则是这样一个规则:规则存在多个目标,并且不同的目标可以根据目标文件的名字来自动构造出依赖文件.静态模式规则比多目标规则更通用,它不需要多个目标具有相同的依赖.但是静态模式规 ...