焦点和背景颜色更改的文本框验证错误

本文关键字:文本 验证 错误 背景 颜色 焦点 | 更新日期: 2023-09-27 18:34:40

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

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

if(textBox1.Text=="" || textBox2.Text=="")
{
 MessageBox.Show("Error","Error");
 //Required codes !!
}

焦点和背景颜色更改的文本框验证错误

可能你正在寻找这个:

if(string.IsNullOrEmpty(textbox1.Text.Trim()))
{
   textBox1.Focus();
   textBox1.BackColor = Color.Red;
} 
else if(string.IsNullOrEmpty(textbox2.Text.Trim()))
{
   textBox2.Focus();
   textBox2.BackColor = Color.Red;
} 

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

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

更新:我修改了==与字符串方法的比较IsNullOrEmpty()加上我调用了一个额外的方法Trim()它基本上会从输入中删除所有前导和尾随空格。因此,如果用户只输入了空格,它将删除它们,然后查看它是否变为空。

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

示例 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");
        }
    }
}