【发布时间】:2013-01-02 09:22:17
【问题描述】:
我需要在焦点上更改按钮 BackColor。
现在我在按钮中使用MouseOverBackColorSilver。
当我用鼠标聚焦按钮时,它的背景色变为 Silver。
当我通过 Tab 键或后面代码中的 .focus() 聚焦按钮时,我想将其背景色更改为 Silver。
我应该使用哪个事件?
有人可以帮我吗?
谢谢。
【问题讨论】:
我需要在焦点上更改按钮 BackColor。
现在我在按钮中使用MouseOverBackColorSilver。
当我用鼠标聚焦按钮时,它的背景色变为 Silver。
当我通过 Tab 键或后面代码中的 .focus() 聚焦按钮时,我想将其背景色更改为 Silver。
我应该使用哪个事件?
有人可以帮我吗?
谢谢。
【问题讨论】:
您可以为此使用GotFocus 和LostFocus,或Enter 和Leave 事件。
private void myBtn_GotFocus(object sender, EventArgs e)
{
myBtn.BackColor = Color.Silver;
}
private void myBtn_LostFocus(object sender, EventArgs e)
{
myBtn.BackColor = SystemColors.Control;
}
【讨论】:
为了保持一致性,您可以同时使用tab 和mouseover 来在焦点位于表单上时更改按钮颜色。
但您需要覆盖低级别的 Got、LostFocus 事件。
protected override void OnLostFocus(EventArgs e)
{
base.OnLostFocus(e);
}
protected override void OnGotFocus(EventArgs e)
{
base.OnGotFocus(e);
}
【讨论】: