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 
      } 
     } 

}