我需要一个代码,用于注册表格。 想要注册的人需要填写所有文本框。 我希望它能与之合作:
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 :(得分: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
方法。
答案 1 :(得分: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;
}
其余部分也一样。其中很好的部分是您可以将验证代码分成一个帮助程序类,以便您的代码保持可读性。
答案 2 :(得分:0)
您想检查文本框中是否有文字?
if(string.IsNullorEmpty(usernTb.Text))
{
usernLbl.ForeColor = Color.Red;
}
答案 3 :(得分: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
}
}
}
答案 4 :(得分: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
}