验证多个表单,而不必在每个表单中都有验证代码
本文关键字:验证 表单 代码 不必 | 更新日期: 2023-09-27 18:13:03
我正在开发一个c#应用程序,该应用程序具有从不同状态的用户获取类似输入的表单。
我需要能够验证它们,因此我使用errorproviders
代码工作得很好,但我注意到,以我目前的知识,如果我想验证多个表单,那么我将不得不保持复制粘贴验证代码在每个类似的形式,我想知道是否有一个更简单的方法来重用验证代码在一个中心位置,可以由所有的形式访问,而不是必须为每个人编码。
下面是c#
中的验证代码片段//Methods to verify and user inputs
private bool ValidateName()
{
bool bStatus = true;
if (name.Text == string.Empty)
{
errorProvider2.SetError(name, "");
errorProvider1.SetError(name, "Please Enter Name");
bStatus = false;
}
else
{
errorProvider1.SetError(name, "");
errorProvider2.SetError(name, "Good");
bstatus = true;
}
return bStatus;
}
private void name_Validating(object sender, CancelEventArgs e)
{
ValidateName();
}
我想要能够做的是有方法ValidateName()定义在这样一种方式,我可以调用它在 name_validation ()函数的表单有一个文本框名为name来验证它。
您将需要这样的内容。不是在项目前面,所以没有精确的语法。它应该为你指明正确的方向
//Methods to verify and user inputs
private bool ValidateName(string aName)
{
bool bStatus = true;
// You'll need to fill this bit
// cast or instatiate a textbox here, let's call it txt_box_name
//
// cast : if you pass an object that you know is a textbox
//
// instantiate : you can create an instance of a textbox with Activator.CreateInstance
// more on that here: http://msdn.microsoft.com/en-us/library/system.activator.createinstance%28v=vs.110%29.aspx
//
// and then continue as normal with your generic text box field
if (txt_box_name.Text == string.Empty)
{
// do something
}
else
{
// do something else
}
return bStatus;
}
private void name_Validating(object sender, CancelEventArgs e)
{
ValidateName("name");
// or :
//ValidateName("username");
}