在WinForm中有几个TextBox,二个按钮.按钮代码中一个写:
    this.TextBox1.Enabled = true;
    this.TextBox2.Enabled = true;另一个代码中写:
    this.TextBox1.Enabled = false;
    this.TextBox1.Enabled = false;默认各个TextBox的Enabled属性设为false.在界面上按下第一个按钮之后,各个控件中可以进行编辑,即变白了,可以得到焦点;
如果不将任何一个TextBox得到焦点,就按第二个按钮(即轮流按两个按钮,中间不进行任何操作),界面上的各个控件可以正常变灰.
但是,如果按下第一个按钮,将TextBox得到焦点之后,再去按第二个按钮时,曾经得到焦点的TextBox不会变灰,还是白的,但不可以得到焦点了.请问高人,这是怎么回事,应该如何处理?

解决方案 »

  1.   

    注,我重载了TextBox的OnEnter及OnLeave方法,想让控件得到焦点时显示一个颜色,焦点离开时再显示白色.
    protected override void OnEnter(EventArgs e)        //重载得到焦点的方法
            {
                base.OnEnter(e);
                this.BackColor = Color.Cyan;
            }protected override void OnLeave(EventArgs e)
            {
                base.OnLeave(e);
                this.BackColor = Color.White;
            }
      

  2.   

    this.TextBox1.Enabled = false; 
        this.TextBox1.Enabled = false; 
    在执行这个之前,先判断并冲这里移除焦点。