【发布时间】:2014-12-25 07:10:28
【问题描述】:
我是 WinForms 的新手,我有一个基本表单,用户可以在其中向 TextBox 输入数据,并且可以按“保存”或“取消”。我想实现数据验证以确保用户实际上在 TextBox 中输入了一些内容,但截至目前,ErrorProvider 图标仅在单击 TextBox 本身时出现,并且在按下“保存”按钮时不检查验证,如我是故意的。我也在使用 Visual Studio 2013。
此事件处理程序代码在btnSave_Click 方法中:
this.txtNote.Validating += new
System.ComponentModel.CancelEventHandler(this.txtNote_Validating);
txtNote_Validating 方法看起来像:
protected void txtNote_Validating(object sender,
System.ComponentModel.CancelEventArgs e)
{
if(txtNote.Text.Length == 0)
{
errorProvider1.SetError((Control)txtNote, "An explanation of your time entry is required.");
}
else
{
errorProvider1.SetError(txtNote, "");
}
}
另外,我没有在我的txtNote 的属性窗口中添加任何事件,并且在属性窗口中的我的 btnSave 事件中添加了一个验证事件:txtNote_Validating 和点击:btnSave_Click。
我的问题是为什么我的 TextBox 只在我点击它时才有效,如何让我的“保存”按钮检查 TextBox 与 ErrorProvider 组件的验证?
【问题讨论】:
-
您需要在按钮单击时进行验证,而不是在输入文本框时引发的验证事件。所以删除所有事件只需点击按钮即可。然后将上面的代码移动到按钮单击事件处理程序,它应该没问题
-
ErrorProvider 不 做任何验证,它只是报告错误。什么都不是你can't fix。
标签: c# winforms validation errorprovider