2013-07-31 49 views
0

我想驗證使用錯誤提供程序的winform。當用戶點擊按鈕多個驗證方法執行txtFieldOne_Validated(this, e); txtFieldTwo_Validated(this, e);,我需要解決方案來進一步停止執行,如果任何驗證器失敗並顯示錯誤使用錯誤提供程序。使用錯誤提供程序進行驗證並停止進一步執行

我覺得使用私有變量布爾_formValid像

private btnValidateFields_Click(object sender, EventArgs e) 
{ 
    txtFieldOne_Validated(this, e); 
    txtFieldTwo_Validated(this, e); 
    if(_formValid) 
    {continue...} 
} 

private void txtFieldOne_Validated(object sender, EventArgs e) 
{ 
    if(....) 
     errorProvider1.SetError(txtFieldOne, "some error message") 
     _formValid = true; 
    else(....) 
     errorProvider1.SetError(txtFieldOne, "") 
     formValid = false; 
} 

,但使用這種方法,如果最後一次檢查人口相比仍_formValid真實,形式通場是真實的。

+0

請定義'進一步執行'。如果在此之後你不打電話,那麼什麼都不應該執行。 – Sandy

+0

如果使用formValid語句,我應該在內部調用進一步的執行,用用戶輸入來填充我的對象 – panjo

回答

1

我不清楚你在做什麼。但根據您的意見,我會提出類似這樣的建議。不需要爲不同的控件調用不同的驗證方法。所有的控件都應該使用相同的方法進行驗證。

void IsFormValid(this, e) 
{ 
    bool result = ValidateAllControls(); 

    if(!result) 
     return; 

    // Rest of the execution 
} 

bool ValidateAllControls() 
{ 
    if(!control1.IsValid) 
     return false; 
    if(!control2.IsValid) 
     return false; 
    if(!control3.IsValid) 
     return false; 

    return true; 
} 

讓我知道如果我誤解了一些東西。

希望它有幫助。

相關問題