【问题标题】:Common User Input Validation Code in MVP WinformsMVP Winforms 中的通用用户输入验证代码
【发布时间】:2012-07-22 00:55:13
【问题描述】:

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

问候, ZB

【问题讨论】:

    标签: c# winforms validation mvp


    【解决方案1】:

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

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

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-07-08
      • 2017-07-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-14
      • 1970-01-01
      相关资源
      最近更新 更多