0

背景: 我是 MVP 新手,刚刚使用 Model View Presenter 编写我的第一个 winform 应用程序 问题: 我一直在浏览有关如何为 Windows 控件(例如 TextBox 等)编写用户输入验证代码以及将该代码放在何处的最佳实践winforms 应用程序使用 Model View Presenter 设计模式,但仍然感到困惑。让我解释一下 假设我的表单上有一些 TextBox 控件,它们接受名称、电话、电子邮件、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 类(代码)放在 Model View Presenter 设计中的什么位置。

问候, ZB

4

1 回答 1

0

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

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

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

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

我知道答案不是很有描述性,但是现在我有点忙,所以不能花太多时间来解释这个。让我知道它是否有帮助。

于 2012-08-21T11:49:21.680 回答