在窗口窗体中焦点时更改按钮的BackColor

时间:2013-01-02 09:22:18

标签: c# winforms button focus

我需要在焦点上更改按钮BackColor。
现在我在按钮中使用MouseOverBackColor< = Silver 当我通过鼠标聚焦按钮时,其背景颜色变为银色 当我通过Tab键或后面的代码.focus()来关注按钮时,我想将其背景颜色更改为 Silver
我应该使用哪种活动?
请问有人帮帮我吗? 感谢。

2 个答案:

答案 0 :(得分:1)

为了保持一致性,当焦点位于表单上时,您可以同时使用tabmouseover来更改按钮颜色。

但你需要覆盖低级别的Got,LostFocus事件。

protected override void OnLostFocus(EventArgs e)
{
    base.OnLostFocus(e);
}

protected override void OnGotFocus(EventArgs e)
{
    base.OnGotFocus(e);
}

Reference

答案 1 :(得分:0)

您可以使用GotFocusLostFocus,或EnterLeave事件来实现此目的。

private void myBtn_GotFocus(object sender, EventArgs e)
{
    myBtn.BackColor = Color.Silver;
}

private void myBtn_LostFocus(object sender, EventArgs e)
{
    myBtn.BackColor = SystemColors.Control;
}