C#Winform去掉Button获取焦点后的框

时间:2022-11-17 22:23:07

在C#winform中创建Button时,如果Button的FlatStyle属性设置为Flat,则在点击的时候会出现一个框,如何去掉这个框呢?

Control类的ShowFocusCues属性是控制控件是否显示聚焦框,MSDN中的解释如下:

Control.ShowFocusCues 属性

获取一个值,该值指示控件是否应显示聚焦框。

语法:

protected internal virtual bool ShowFocusCues { get; }

我们可以通过自定控件来实现去除框,代码如下:

  public class MyFlatButton : Button
    {
        public MyFlatButton()
        {
            FlatStyle = FlatStyle.Flat;
            FlatAppearance.BorderSize = 0;
            FlatAppearance.MouseDownBackColor = Color.DarkOrange;
            FlatAppearance.MouseOverBackColor = Color.DarkOrange;
        }

        /// <summary>
        /// 取消捕获焦点后的聚焦框
        /// </summary>
        protected override bool ShowFocusCues
        {
            get
            {
                return false;
            }
        }
    }