MVP Winforms中的通用用户输入验证码

时间:2012-07-23 18:38:57

标签: c# winforms validation mvp

背景 我是MVP的新手,只是使用Model View Presenter编写我的第一个winform应用程序 的问题: 我一直在浏览有关如何为Windows控件(例如TextBox等)编写用户输入验证代码以及使用Model View Presenter设计模式将该代码放在winforms应用程序中的最佳实践,但仍然感到困惑。 让我解释 假设我的表单上有一些TextBox控件,它接受Name,Phone,email,zip等输入。通常我会在其中的每一个中调用validateName(),validatePhone(),validateEmail()和validateZip()之类的不同方法。方法我肯定要检查用户提供的输入是非空的,如

    if(txtName.Text.Length == 0)
   {
      errorMessage = "Name is required.";
         return false;
   }

   if(txtEmail.Text.Length == 0)
   {
      errorMessage = "e-mail address is required.";
         return false;
   }

闻起来像代码重复,我认为必须有一种更好更有效的方法来检查文本是否为空(可能是通过循环遍历所有文本框控件)。

所以,我想的是让CommonMethods类包含像CheckifTextEmply(),CheckifNumber()等常用方法,并在我的所有表单中使用这个类,因为这些是常用功能,可以被其他TextBox控件使用项目中的表格。 现在可以请你告诉我 1.这是正确的方法,如果没有,那么我应该如何处理这个问题 2.如果正确,我应该将CommonMethods类(代码)放在模型视图Presenter设计中。

此致 ZB

1 个答案:

答案 0 :(得分:0)

看起来有点旧帖子。尝试创建一个方法,将控制作为参数,然后尝试验证它。

bool validate(TextBox txt)
{
    return string.IsNUllOrEmpty(txt.Text);
}

您还可以尝试使用params[]参数来获取多个控件并验证它们。

关于错误消息,如果您转到“必填字段”消息,而不是“名称是必需的”,它将使工作更容易。但如果没有,请尝试创建控制字典和bool,如果验证失败则传递false并根据它采取行动。

我知道答案不是很具描述性,但是现在,我有点忙,所以不能花太多时间来解释这个。如果有帮助,请告诉我。