我正在尝试更改焦点(自定义控件(上文本框的前景
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;