【问题标题】:Change BackColor of button when focus in Window Form在窗口窗体中聚焦时更改按钮的背景颜色
【发布时间】:2013-01-02 09:22:17
【问题描述】:

我需要在焦点上更改按钮 BackColor。
现在我在按钮中使用MouseOverBackColorSilver。
当我用鼠标聚焦按钮时,它的背景色变为 Silver
当我通过 Tab 键或后面代码中的 .focus() 聚焦按钮时,我想将其背景色更改为 Silver
我应该使用哪个事件?
有人可以帮我吗? 谢谢。

【问题讨论】:

    标签: c# winforms button focus


    【解决方案1】:

    您可以为此使用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;
    }
    

    【讨论】:

      【解决方案2】:

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

      但您需要覆盖低级别的 Got、LostFocus 事件。

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

      Reference

      【讨论】:

        猜你喜欢
        • 2023-03-25
        • 1970-01-01
        • 2011-10-06
        • 2012-10-22
        • 1970-01-01
        • 2020-06-16
        • 1970-01-01
        • 1970-01-01
        • 2011-01-30
        相关资源
        最近更新 更多