2011-01-14 54 views
0

我需要一個代碼,用於registrationform。 想要註冊的人需要填寫所有文本框。 我想,它與工作:填寫所有texboxes

 if (..........) 
     { 
      usernLbl.ForeColor = Color.Red; 
      nameLbl.ForeColor = Color.Red; 
      ageLbl.ForeColor = Color.Red; 
      countryLbl.ForeColor = Color.Red; 
      passwordLbl.ForeColor = Color.Red; 
     } 
     else 
     { 
     // save xml 
     } 

TNX

我解決它通過這個幹什麼:

 if (string.IsNullOrEmpty(ageTxb.Text)) 
     { 
      ageLbl.ForeColor = Color.Red; 
     } 
     if (string.IsNullOrEmpty(usernameTxb.Text)) 
     { 
      usernLbl.ForeColor = Color.Red; 
     } 
     if (string.IsNullOrEmpty(nameTxb.Text)) 
     { 
      nameLbl.ForeColor = Color.Red; 
     } 
     if (string.IsNullOrEmpty(countryTxb.Text)) 
     { 
      countryLbl.ForeColor = Color.Red; 
     } 
     if (string.IsNullOrEmpty(passwordTxb.Text)) 
     { 
      passwordLbl.ForeColor = Color.Red; 
     } 
+0

開始,所有的輸入盒子至少被填充,然後從那裏工作。我們不知道您的完整驗證需求。但你的第一個檢查應該是`yourTextbox.Text.Trim()!= string.Empty`。重複每個輸入框,將其重構爲可重用的方法等。開心編程。 – 2011-01-14 15:09:47

+0

您的解決方案無法在您的解決方案中重複使用,並且您一次又一次具有基本相同的代碼。你怎麼知道你是否需要保存xml? – 2011-01-14 15:31:08

回答

0
private static bool NotEmpty(params TextBox[] textBoxes) 
{ 
    bool valid = true; 
    foreach(var box in textBoxes) 
    { 
     if (String.IsNullOrEmpty(box.Text)) 
     { 
      box.ForeColor = Color.Red; 
      valid = false; 
     } 
    } 
    return valid; 
} 

所以樣本通話將

if (NotEmpty(textBox1, textBox2, textBox3) 
{ 
    //save xml 
} 
0

你們是不是要驗證用戶輸入?你使用哪種表示方式? WPF? Windows窗體? ASP.NET?

無論如何,如果你要檢查每一個文本框充滿嘗試使用string.IsNullOrEmpty(string)

bool validated = Validate(ageTB, nameTB, countryTB, etc); 
if (validated) 
{ 
    // Save XML 
} 
else 
{ 
    // Show error 
} 

private bool Validate(params TextBox[] textboxes) 
{ 
    foreach (TextBox tb in textboxes) 
    { 
     if (string.IsNullOrEmpty(tb.Text)) 
      return false; 
    } 

    return true; 
} 

編輯:如果你使用.NET Framework 4.0中使用string.IsNullOrWhitespace方法工作。

0

你會想這樣做,通過控制控制,因此您可以只突出了不正確的人(例如):

usernLbl.ForeColor = ValidateUsername(usrnTxtbox.Text); 
nameLbl.ForeColor = ValidateName(nameTxtbox.Text); 

public Color ValidateUsername(string username) 
{ 
    if(<first BAD condition>) 
    { 
     return Color.Red; 
    } 
    //etc. 
    return Color.Black; 
} 

與同爲休息。其中不錯的部分是你可以將驗證代碼分成一個輔助類,以便你的代碼保持可讀性。

0

你想檢查文本框內是否有文本?

if(string.IsNullorEmpty(usernTb.Text)) 
{ 
    usernLbl.ForeColor = Color.Red; 
} 
0

如果你有一噸文本的控制,你可以通過檢查做這樣的事情

foreach (Control c in parent.Controls) 
{ 
    var tb = c as TextBox; 
     if (tb != null) 
     { 
     //do your validation  
      if (string.IsNullOrEmpty(tb.Text)) 
      { 
       tb.ForeColor = Color.Red 
      } 
     } 

}