写的不太专业,请大家指点指点!!!
本人想把下面这段代码在类中实现,这样就不用在其它Form中也重复的写这么多了,不知道有没有可能实现。(功能:当光标在TextBox中则TextBox背景色变成淡黄,光标离开后变白)namespace Manager
{
    public partial class ServiceRoom : Form
    {
        public ServiceRoom()
        {
            InitializeComponent();
            //为窗口的所有TextBox添加订阅Enter事件
            this.txtFindRoomId.Enter += new EventHandler(this.TextBox_Enter);
            this.txtRoomId.Enter += new EventHandler(this.TextBox_Enter);
            this.txtRoomState.Enter += new EventHandler(this.TextBox_Enter);
            this.txtRoomDescribe.Enter += new EventHandler(this.TextBox_Enter);
            //为窗口的所有TextBox添加订阅Leave事件
            this.txtFindRoomId.Leave += new EventHandler(this.TextBox_Leave);
            this.txtRoomId.Leave += new EventHandler(this.TextBox_Leave);
            this.txtRoomState.Leave += new EventHandler(this.TextBox_Leave);
            this.txtRoomDescribe.Leave += new EventHandler(this.TextBox_Leave);
        }        void TextBox_Leave(object sender, EventArgs e)
        {
            TextBox LeaveTxtColor = (TextBox)sender;
            LeaveTxtColor.BackColor = System.Drawing.Color.FromArgb
                (((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(255)))));
        }        void TextBox_Enter(object sender, EventArgs e)
        {
            TextBox EnterTxtColor = (TextBox)sender;
            EnterTxtColor.BackColor = System.Drawing.Color.FromArgb
                (((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(192)))));
        }我在类中也这样写过:如下-----那么在调用方法的时候要加上控件的NAME(如:textBox1,textBox2.....textBoxN),有没有可声明一个TextBox的实列,然后让窗口内的所有TextBox控件与这个实例关联,用这个实例去订阅这个事件namespace TextStyleColor
{
    /// <summary>
    /// 定义TextBox事件
    /// 当焦点在编辑框内时发生(变成黄色)
    /// 当焦点改变时发生(变成白色)
    /// 颜色可修改
    /// </summary>
    class TextStyle
    {
        public void TextBackStyle(TextBox BackStyle)//在调用方法的时候要加上控件的NAME(如:textBox1)
        {            BackStyle.BackColor = System.Drawing.Color.FromArgb
                (((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(192)))));
        }
        public void TextForeStyle(TextBox ForeStyle))//在调用方法的时候要加上控件的NAME(如:textBox1)        {
            ForeStyle.BackColor = System.Drawing.Color.FromArgb
               (((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(255)))));
        }
    }
}

解决方案 »

  1.   

    继承TextBox控件,声明FocusColor属性,重写OnWndProc函数!在获得焦点的时候将背景色设为FocusColor,失去焦点时设置回默认颜色。
      

  2.   

    private void ChangeBgColor(Control c, bool bFoucs)
    {
         if(bFoucs)
         {
             c.BackColor = Color.FromArgb(255,255,192);
         }
         else
         {
             c.BackColor = Color.FromArgb(255,255,255);
         }
    }
    调用:
    void TextBox_Leave(object sender, EventArgs e)
    {
        ChangeBgColor(sender, false);
    }随手写的,自己验证下吧=。=
      

  3.   

    继承TextBox控件,声明FocusColor属性,重写OnWndProc函数!在获得焦点的时候将背景色设为FocusColor,失去焦点时设置回默认颜色。
    正解
      

  4.   

    继承TextBox控件,声明FocusColor属性,重写OnWndProc函数!在获得焦点的时候将背景色设为FocusColor,失去焦点时设置回默认颜色。
    正解
      

  5.   

    继承TextBox控件,声明FocusColor属性,重写OnWndProc函数!在获得焦点的时候将背景色设为FocusColor,失去焦点时设置回默认颜色。
    正解