用css
input {background-color:red;}

解决方案 »

  1.   

    if(control   is   ComboBox)   
      {   
      }   
      else   
      {   
      //control   is   not   a   ComboBox   or   control==null   
      }
      

  2.   

    用CSS呀。如7楼的。
    另一个,用skin皮肤文件了。这个很好的。可以定义页面上所有 TextBox的样式。
      

  3.   

    在我的测试系统中,有一个简单的扩展方法:    public static IEnumerable<Control> GetAllControls(this Control startControl)
        {
            foreach (Control c in startControl.Controls)
            {
                yield return c;
                foreach (Control x in c.GetAllControls())
                    yield return x;
            }
        }这样,当我需要对某个对象下面所有的TextBox的背景设置为红色,我可能写:
      
        theControl
            .GetAllControls()
            .Where(c=> c is TextBox)
            .Where(c=>{c.BackColor = System.Drawing.Color.Red;})
            .Count();这样一句话就可以了。不过,我只会把这类代码用在测试程序的时候。我也不太想说清楚这是为什么,反正这是很霸道的做法,一旦写下了这个逻辑代码那么将来就要一直维护下去,那么你再想精确地控制TextBox个性就自相矛盾自己跟自己吵架了。程序正常运行中我还是倾向于设计时精确地指定各个控件的SkinID(多写一个声明标记并不费事,总比重复代码要省事),然后你的美工(或许就是你自己)可以通过theme来在产品发布时给整个软件换上鲜艳的统一的皮肤。
      

  4.   

      
        theControl 
            .GetAllControls() 
            .Where(c=> c is TextBox) 
            .Where(c=>{c.BackColor = System.Drawing.Color.Red; return true;}) 
            .Count();呵呵,少写了 “return true;”就不符合lamda表达式的要求了,lamda表达式都是返回值的。