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



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

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;

最新更新