焦点和backColor更改时TextBox验证错误

时间:2016-02-15 08:44:13

标签: c# winforms textbox

我有一个简单的计算器应用程序,其中我使用了两个textBox,第一个用于输入第一个值,第二个用于第二个值,问题在于代码将焦点转为空{{1 }}也会更改其textBox。 如果表单上有多个backColor,则使用foreach在循环中需要代码。

空文本框错误的代码写在结果单击按钮中:

textBox

2 个答案:

答案 0 :(得分:1)

可能你正在寻找这个:

if(textbox1.Text==String.Empty)
{
   textBox1.Focus();
   textBox1.BackColor=Color.Red;
} 
else if(textbox2.Text==String.Empty)
{
   textBox2.Focus();
   textBox2.BackColor=Color.Red;
} 

这将帮助您验证所有 TexBox控件

foreach (Control control in this.Controls)
    {
        if (control.GetType() == typeof(TextBox))
        {
             TextBox textBox = (TextBox)control;
             if (textBox.Text == String.Empty)
             {
                 textBox.Focus();
                 textBox.BackColor = Color.Red;
             }
        }
    }

答案 1 :(得分:0)

正如我在评论中所写,迭代表单控件集合:

样本1:

 foreach (Control co in this.Controls)
 {
     if (co.GetType() == typeof(TextBox))
     {
          MessageBox.Show(co.Name);
     }
 }

样本2:

foreach (Control co in this.Controls)
{
    if (co.GetType() == typeof(TextBox))
    {
        TextBox tb = co as TextBox;
        MessageBox.Show(co.Name + "/" + co.Tag);
    }
}

样本3:

foreach (Control co in this.Controls)
{
    TextBox tb = co as TextBox;
    if (tb != null)
    {
        if (!String.IsNullOrWhiteSpace((string)tb.Tag))
        {
            MessageBox.Show(co.Name + "/" + co.Tag);
        }
        else
        {
            MessageBox.Show(co.Name + " ... without tag");
        }
    }
}