2012-07-23 21 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,並根據它執行操作。

我知道答案是不是很描述性的,但現在,我有點忙這麼着要花費很多時間來解釋這一點。讓我知道它是否有幫助。