我是初学者,正在学习c#。如果我有2个文本框,我可以在1 if
语句中验证2个文本框吗?
例如:
{
string emptytextbox
if (textBox1.Text == "" || textBox2.Text == "" || textBox3.text == "")
{
//if textbox2 is empty, then messagebox will show
emptytextbox = textBox2.text;
mbox(emptytextbox + " must be filled");
//messagebox will show "textBox2 must be filled"
//but if textbox1&2 has ben filled, but textbox3 empty,then messagebox will show "textbox3 must be filled"
}
}
我可以这样做吗?
答案 0 :(得分:1)
一个条件返回一个布尔值,没有办法知道一个是空文本框。当您编写或表达式时,如果任何组件评估为true,则条件评估为true。在这种情况下,当你进入条件时,事实是至少有一个条件是真的(条件我的意思是textBox1.Text == ""
)。
在这种情况下,执行验证的最佳方法必须是这样的:
void VerificationFunction()
{
CheckTextBox(textbox1);
CheckTextBox(textbox2);
CheckTextBox(textbox3);
}
void CheckTextBox(TextBox tb)
{
if (string.IsNullOrEmpty(tb.Text))
{
MessageBox.Show(tb.Name + "must be filled");
}
}
答案 1 :(得分:0)
我可以在1“if”语句中验证2个文本框吗?
NO。因为您必须检查每个textBox并通知用户有关特定textBox的内容。
对于所有三个文本框,您可以执行以下操作:
if (textBox1.Text == "")
MessageBox.Show("textBox1 must be filled");
if (textBox2.Text == "")
MessageBox.Show("textBox2 must be filled");
if (textBox3.Text == "")
MessageBox.Show("textBox3 must be filled");
优良作法是为此目的设置一种方法。
这是可用于检查表单上的每个TextBox的方法。如果有任何空的TextBox,它将向用户显示textbox must be filled
的消息。好的做法是通知用户一次。
private void ValidateTextBoxes()
{
foreach (Control c in this.Controls)
{
if (c is TextBox)
{
if (string.IsNullOrEmpty(c.Text))
{
MessageBox.Show(c.Name + " must be filled");
break;
}
}
}
}
答案 2 :(得分:0)