请教,窗体焦点变化时触发哪个事件?
我想textedit 或其它控件获取焦点时,改变背景色
有没有办法在窗体的焦点变化时,获取哪个控件获取了焦点,然后设置为指定的背景色。
我现在是在每个控件的
Properties_Enter
this.textEdit2.BackColor = Color.Orange;Properties_Leave
this.textEdit2.BackColor = Color.White;只有几个控件还好处理。有没有更好的方法呀?

解决方案 »

  1.   

    没有,不过你可以用类似如下的代码批量将获得焦点事件添加给每个控件
    foreach (var c in Controls)
    {
        c.GotFocus += (senderobj, eventarg) => { MessageBox.Show((senderobj As Control).Name); }
    }
      

  2.   

    能不能在窗体的鼠标移动事件中,循环controls窗体控件集合,来判断哪个控件获得了焦点,然后再改变背景色。
      

  3.   

    窗体有一个KeyPreview的属性,你把它设为true,然后在你窗体加一个Enter事件,只要你窗体的任何控件触发了Enter事件,都会去触发窗体的Enter事件
      

  4.   

    Form.ActivatedDeactivate事件