如何将背景色设置为自定义文本框的原始颜色

how set backcolor to the original color of the custom textbox

我正在尝试更改焦点文本框的前景色(自定义控件)

 protected override void OnEnter(EventArgs e)
        {
            base.OnEnter(e);
            BackColor = this.Parent.BackColor;
            ForeColor = _OnFocusForeColor;
        }

但是如何恢复到前景色的原始颜色?

我试过了:

protected override void OnLeave(EventArgs e)
        {
            base.OnLeave(e);
            BackColor = Color.WhiteSmoke;
            ForeColor = this.ForeColor;
}

但不起作用!

几个想法:

第一个选项

在更改颜色的行上设置一个断点,然后调试您的解决方案。当它停在该行时,将鼠标悬停在现有的 ForeColor 上以查看在更改之前调用的值。现在您可以在设置后使用该颜色。

第二个选项

在设置新颜色之前,将已经存在的值保存在 属性 中,您稍后可以访问并重新应用该值:

protected override void OnEnter(EventArgs e)
{
    base.OnEnter(e);
    BackColor = this.Parent.BackColor;
    
    // New:
    PreviousColor = ForeColor;
    ForeColor = _OnFocusForeColor;
}

..然后,显然:

    ForeColor = PreviousColor;