我需要隐藏提交但是如果验证中有任何错误。我使用下面的代码,如果我输入带有字符的文本框,如果我更正文本框中的1,则提交按钮变为可见!如何避免它利用所有的错误是否清楚? 谢谢
int num;
private void textBox5_TextChanged(object sender, EventArgs e)
{
bool isNum = int.TryParse(textBox5.Text.Trim(), out num);
if (!isNum)
{
button2.Visible = false;
errorProvider1.SetError(this.textBox5, "Please enter numbers");
}
else
{
button2.Visible = true;
errorProvider1.SetError(this.textBox5, "");
}
}
private void textBox6_TextChanged(object sender, EventArgs e)
{
bool isNum = int.TryParse(textBox6.Text.Trim(), out num);
if (!isNum)
{
button2.Visible = false;
errorProvider2.SetError(this.textBox6, "Please enter numbers");
}
else
{
button2.Visible = true;
errorProvider2.SetError(this.textBox6, "");
}
}
答案 0 :(得分:1)
在将按钮可见性设置为True
之前,请检查两个文本框是否都没有错误。你可以使用另一种方法,就像我在下面使用UpdateSubmitButton
所做的那样。
此方法会检查textBox5
或textBox6
是否存在与之关联的错误,然后相应地更新button2
的可见性。请注意,我从每个button2.Visible
事件中删除了其他TextChanged
个分配,并将其替换为对UpdateSubmitButton
方法的调用。
private void UpdateSubmitButton()
{
if (String.IsNullOrEmpty(errorProvider1.GetError) &&
String.IsNullOrEmpty(errorProvider2.GetError))
{
button2.Visible = true;
}
else
{
button2.Visible = false;
}
}
private void textBox5_TextChanged(object sender, EventArgs e)
{
int num;
bool isNum = int.TryParse(textBox5.Text.Trim(), out num);
if (!isNum)
{
errorProvider1.SetError(this.textBox5, "Please enter numbers");
}
else
{
errorProvider1.SetError(this.textBox5, "");
}
UpdateSubmitButton();
}
private void textBox6_TextChanged(object sender, EventArgs e)
{
int num;
bool isNum = int.TryParse(textBox6.Text.Trim(), out num);
if (!isNum)
{
errorProvider2.SetError(this.textBox6, "Please enter numbers");
}
else
{
errorProvider2.SetError(this.textBox6, "");
}
UpdateSubmitButton();
}
答案 1 :(得分:0)
根据您验证的文本框数量,您可以创建一个功能,一次性验证所有内容。
bool ValidateAll(){
bool isNum = int.TryParse(textBox5.Text.Trim(), out num);
if (!isNum)
{
return false;
}
isNum = int.TryParse(textBox6.Text.Trim(), out num);
if (!isNum)
{
return false;
}
return true;
}
然后调用要监视的所有TextChanged事件的此方法