如何将背景色设置为自定义文本框的原始颜色
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;
我正在尝试更改焦点文本框的前景色(自定义控件)
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;