C# 如何使用 ErrorProvider 组件

使用 Windows 窗体 ErrorProvider 组件,可以对窗体或控件上的用户输入进行验证。当验证用户在窗体中的输入或显示数据集内的错误时,一般要用到该控件。相对于在消息框中显示错误信息,错误提供程序是更好的选择,因为一旦关闭了消息框,就再也看不见错误信息。ErrorProvider 组件在相关控件(如文本框)旁显示一个错误图标 (如何使用 <wbr>ErrorProvider <wbr>组件);当用户将鼠标指针放在该错误图标上时,将出现显示错误信息字符串的工具提示。

 

  ErrorProvider 组件的常用属性包括:


  (1)  BlinkRate 属性:获取或设置错误图标的闪烁速率(以毫秒为单位),默认为 250 毫秒。


  (2)  Icon 属性:获取或设置错误图标,当为控件设置了错误描述字符串时,该图标显示在有错误的控件旁边。
若要获得最好的效果,请使用大小为 16×16 像素的图标。如有必要,可将指定图标的大小调整为 16×16 像素。


  (3)  BlinkStyle 属性:获取或设置一个值,通过该值指示错误图标的闪烁时间。
  属性值是一个 ErrorBlinkStyle 枚举类型:
成员名称            说明                                          
AlwaysBlink       当错误图标第一次显示时,或者当为控件设置了错误描

                       述字符串并且错误图标已经显示时,总是闪烁。
BlinkIfDifferentError  图标已经显示并且为控件设置了新的错误字符串时闪烁。
NeverBlink             错误图标从不闪烁。

  默认为 BlinkIfDifferentError。


  ErrorProvider 组件常用的公共方法包括:


  (1)  SetError 方法:设置指定控件的错误描述字符串。
  该方法的声明如下:
public void SetError (
  Control control,
  string value
);

  其中,参数 control 表示要为其设置错误描述字符串的控件;参数 value 表示错误描述字符串。


  (2)  SetIconAlignment 方法:设置错误图标相对于控件的放置位置。
  该方法的声明如下:
public void SetIconAlignment (
 Control control,
 ErrorIconAlignment value
);

  其中,参数 control 是要为其设置图标位置的控件。参数 value  是一个枚举类型ErrorIconAlignment 的值。
成员名称        说明                                
BottomLeft      图标显得与控件的底部和控件的左边对齐。
BottomRight     图标显得与控件的底部和控件的右边对齐。
MiddleLeft      图标显得与控件的中间和控件的左边对齐。
MiddleRight     图标显得与控件的中间和控件的右边对齐。
TopLeft         图标显得与控件的顶部和控件的左边对齐。
TopRight    图标显得与控件的顶部和控件的右边对齐。


  (3)  SetIconPadding 方法:设置指定控件和错误图标之间应保留的额外空间量。
  该方法声明如下:
public void SetIconPadding (
 Control control,
 int padding
);

  其中,参数 control 是要为其设置空白的控件;padding 是要在图标与指定控件之间添加的像素数。


  很多图标的中心图像周围通常都留有多余的空间,因此只有当需要额外空间时才需要填充值。填充值可以为正,也可以为负。负值将使图标与控件的边缘重叠。


  下面的实例主要介绍了如何使用 ErrorProvider 组件指示窗体上有关错误信息的编程技术。实例程序执行后,当用户两次密码的输入不一致时,会弹出一个错误提示框,并在密码输入控件的右边显示一个红色的警告图标,当鼠标停留在该图标时,会出现一个工具提示条显示相关提示信息。

 

  具体步骤如下:


  (1)  启动Visual Studio 2005,新建一个C# Windows应用程序项目。

C# 如何使用 ErrorProvider 组件_第1张图片

 

  (2)  在程序设计窗体中添加一个GroupBox控件,在属性对话框中设置其Text属性为“用户注册信息”;再拖放4个Label控件,在属性对话框中设置其Text属性分别为“请输入用户名:”、“请输入用户密码:”、“请确认用户密码:”、“用户名和密码长度为6~12位字符或数字”;再拖放3个TextBox控件,在属性对话框中设置其中的2个密码TextBox控件的PasswordChar属性为“*”。调整其大小适应程序设计窗体的大小。


  (3)  添加一个ErrorProvider组件,保留其默认属性值即可。


  (4)  添加一个Button控件,在属性对话框中设置其Text属性为“确认”。

C# 如何使用 ErrorProvider 组件_第2张图片

 

  为Button控件的Click(鼠标单击)事件添加如下代码:

private void button1_Click(object sender, EventArgs e)
{
   // 检验用户输入结果
   if (this.textBox1.Text.Length > 12 || this.textBox1.Text.Length < 6)
   {
      this.errorProvider1.SetError(this.textBox1, "用户名输入错误");
      DialogResult ReturnDlg = MessageBox.Show(this, "用户名输入错误,是否重新输入?", "信息提示", MessageBoxButtons.RetryCancel, MessageBoxIcon.Question);
      switch (ReturnDlg)
      {
         case DialogResult.Retry:
            this.textBox1.Text = "";
            break;
         case DialogResult.Cancel:
            break;
      }
   }
   if (this.textBox2.Text.Length > 12 || this.textBox2.Text.Length < 6)
   {
      this.errorProvider1.SetError(this.textBox2, "用户密码输入错误");
      DialogResult ReturnDlg = MessageBox.Show(this, "用户密码输入错误,是否重新输入?", "信息提示", MessageBoxButtons.RetryCancel, MessageBoxIcon.Question);
      switch (ReturnDlg)
      {
         case DialogResult.Retry:
            this.textBox2.Text = "";
            break;
         case DialogResult.Cancel:
            break;
      }
   }
   if (!(this.textBox2.Text == this.textBox3.Text))
   {
      this.errorProvider1.SetError(this.textBox3, "用户密码两次输入不一致");
      DialogResult ReturnDlg = MessageBox.Show(this, "用户密码两次输入不一致,是否重新输入?", "信息提示", MessageBoxButtons.RetryCancel, MessageBoxIcon.Question);
      switch (ReturnDlg)
      {
         case DialogResult.Retry:
            this.textBox3.Text = "";
            break;
         case DialogResult.Cancel:
            break;
      }
   }
}

  按 F5 运行实例程序,效果如下图所示。
C# 如何使用 ErrorProvider 组件_第3张图片
 

你可能感兴趣的:(C# 如何使用 ErrorProvider 组件)