实例实现ErrorProvider组件对Textbox控件的输入验证,在一些程序录入中应用ErrorProvider组件能提高录入数据的正确性。运行本程序,登录名输入“mr”,密码为“Mrsoft”,单击“确定”按钮,如果密码输入错误,ErrorProvider组件在密码文本框旁会闪烁图标,给出提示,效果如图所示。
实现本实例功能主要用到了ErrorProvider组件的Blinkbate属性、Blinkstyle属性、SetError方法和TextBox文本框的Validating事件。下面分别进行介绍。
(1)Blinkstyle属性
此属性获取或设置一个值,该值指示错误图标的闪烁时间。其语法格式如下:
public ErrorBlinkStyle BlinkStyle { get; set; }
属性值:ErrorBlinkStyle值之一。默认为BlinkIfDifferentError。ErrorBlinkStyle属性值及说明如表所示。
ErrorBlinkStyle属性值及说明
属 性 值 | 说 明 |
AlwaysBlink | 当错误图标第一次显示时,或者当为控件设置了错误描述字符串并且错误图标已经显示时,总是闪烁 |
BlinkIfDifferentError | 当图标已经显示并且为控件设置了新的错误字符串时闪烁 |
NeverBlink | 错误图标从不闪烁 |
(2)Blinkbate属性
此属性获取或设置错误图标的闪烁速率。其语法格式如下:
public int BlinkRate { get; set; }
属性值:错误图标的闪烁速率(以毫秒为单位)。默认为250毫秒。
注意:错误图标按指定速率闪烁。将BlinkStyle设置为NeverBlink时,表示闪烁速率为0,即不闪烁。
(3)SetError方法
此方法将Error属性设置为指定的TextWriter对象。其语法格式如下:
public static void SetError (TextWriter newError)
参数说明如下。
newError:一个TextWriter流,是新的标准错误输出。
(4)Validating事件
此事件在控件正在验证时发生。其语法格式如下:
public event CancelEventHandler Validating
(1)新建一个Windows应用程序,将其命名为ExecuteAsynchronismFunction,默认窗体为Form1。
(2)在Form1窗体中,主要添加两个ErrorProvider组件,将其BlinkRate属性设置为100,BlinkStyle属性值设置为AlwaysBlink,该控件用于验证输入是否正确;添加两个TextBox控件,用于输入文本;添加两个Button控件,用于引发ErrorProvider组件验证。
(3)主要程序代码。
定义一个带圆角的Textbox,没有用win32 Api,相对比用Api要好一点。注意窗口AutoScaleMode设置为None.
当平台进行注册时,都需要填写用户名和登录密码。在输入登录密码时,需要重复输入一次。在重复输入文本框中,应该禁用粘贴功能,防止用户密码输入错误的情况。本实例可以实现这个功能,实例运行结果如图:
本实例主要用到自定义类CustomTextBoxGroup,在该类的构造方法中,对控件的位置和大小进行设定。在处理屏蔽粘贴的消息时用到方法WndProc。
(1)创建一个项目,将其命名为ShieldPasteFunction,修改默认窗体为ShieldPasteFunction。
(2)主要程序代码。
本程序在加载窗体时,声明一个自定义类CustomTextBoxGroup的对象,并为其指定父容器,然后在当前窗体中添加该控件。代码如下:
TextBox NoStiky = new CustomTextBoxGroup(); //声明一个自定义类CustomTextBoxGroup的对象
private void ShieldPasteFunction_Load(object sender,EventArgs e)
{
this.NoStiky.Parent = this; //设定自定义控件的父容器为当前窗口
this.Controls.Add(this.NoStiky); //在当前窗体中添加自定义控件
}
在自定义类CustomTextBoxGroup的构造函数中,定义控件的位置和大小。代码如下:
public CustomTextBoxGroup()
{
this.Top = 63; //设定自定义控件上边缘与其容器的工作区上边缘之间的距离
this.Left = 105; //设定自定义控件左边缘与其容器的工作区左边缘之间的距离
this.Width = 178; //设定自定义控件的宽度
this.Height = 50; //设定自定义控件的高度
}
重载Windows处理消息的函数WndProc,截获有关粘贴的信息进行屏蔽。代码如下:
*请认真填写需求信息,我们会在24小时内与您取得联系。