2012-07-23 61 views
0

背景: 我是新来的MVP,只是编码使用模型视图演示我的第一个WinForm应用程序 问题: 我已浏览了关于如何编写用户的最佳实践为Windows控件输入验证代码(例如TextBox等)以及使用Model View Presenter设计模式将代码放入winform应用程序的位置,但仍然存在困惑。 让我解释 假设我有我的形式对一些TextBox控件,它接受像姓名,电话,电子邮件,邮递等输入通常我会调用不同的方法,如validateName(),validatePhone(),validateEmail()和validateZip()然后在每个这些方法我肯定会要检查用户在不提供输入空像普通用户输入验证码在MVP的WinForms

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类(代码)在模型视图演示设计。

问候, ZB

回答

0

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

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

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

关于错误信息,而不是“名称是必需的,”如果你去“必填字段”的消息,它会使工作更容易。但是,如果不是,请尝试创建控制和布尔字典,如果验证失败则传递false,并根据它执行操作。

我知道答案是不是很描述性的,但现在,我有点忙这么着要花费很多时间来解释这一点。让我知道它是否有帮助。