ErrorProvider 显示一个简单的界面,向最终用户指出窗体上的控件具有与它关联的错误。如果为控件指定了错误描述字符串,控件旁将会出现一个图标。此图标按 BlinkStyle 指定的方式、以 BlinkRate 指定的速率闪烁。当鼠标悬停在此图标上时,会出现显示错误描述字符串的工具提示。下面以验证一个文本框中用户输入为示例,步骤如下:
1、在Winform窗体上放置一个文本框,如textBox1
2、从工具栏中双击ErrorProvider控件,添加一个ErrorProvider控件;也可以通过编码完成
//实例化一个ErrorProvider
ErrorProvider errorUser = new ErrorProvider();
public frml1ErrorProvider()
{
InitializeComponent();
//设置其闪烁样式
//BlinkIfDifferentError 当图标已经显示并且为控件设置了新的错误字符串时闪烁。
//AlwaysBlink 总是闪烁。
//NeverBlink 错误图标从不闪烁。
errorUser.BlinkStyle = ErrorBlinkStyle.AlwaysBlink;
//错误图标的闪烁速率(以毫秒为单位)。默认为 250 毫秒
errorUser.BlinkRate = 1000;
}
ErrorProvider errorUser = new ErrorProvider();
public frml1ErrorProvider()
{
InitializeComponent();
//设置其闪烁样式
//BlinkIfDifferentError 当图标已经显示并且为控件设置了新的错误字符串时闪烁。
//AlwaysBlink 总是闪烁。
//NeverBlink 错误图标从不闪烁。
errorUser.BlinkStyle = ErrorBlinkStyle.AlwaysBlink;
//错误图标的闪烁速率(以毫秒为单位)。默认为 250 毫秒
errorUser.BlinkRate = 1000;
}
3、添加textBox1的Validating事件
private void textBox1_Validating(object sender, CancelEventArgs e)
{
//输入的字符不能以abc开始
if (textBox1.Text.StartsWith("abc"))
{
errorUser.SetError(textBox1, "输入的字符不能以abc开始");
}
else
{
//如果设置为空的错误信息将不显示错误标记
errorUser.SetError(textBox1, "");
}
}
{
//输入的字符不能以abc开始
if (textBox1.Text.StartsWith("abc"))
{
errorUser.SetError(textBox1, "输入的字符不能以abc开始");
}
else
{
//如果设置为空的错误信息将不显示错误标记
errorUser.SetError(textBox1, "");
}
}
最后,该控件还能用于对dataset中的datatable验证,可以查看MSDN上的示例。