如何从按钮控件中移除焦点矩形?

6

我需要移除一个按钮焦点矩形,因为在点击按钮后它会覆盖 TBitBtn 图标,看上去很不好看。


在所有操作完成后,在 OnClick 中设置 Focused := false; 可以吗? - shibormot
或者使用 SpeedButton 代替? - BeniBela
两个答案都很好,非常感谢 :) - Mitsos Thrash'til'death
2个回答

6
您可以为TBitBtn创建一个Interposer类,并覆盖SetButtonStyle,防止其内部的IsFocused变量被设置:
type
  TBitBtn = class(Buttons.TBitBtn)
  protected
    procedure SetButtonStyle(ADefault: Boolean); override;
  end;

...
implementation

procedure TBitBtn.SetButtonStyle(ADefault: Boolean);
begin
  inherited SetButtonStyle(False);
end;

这将创建一个没有聚焦矩形的 TBitBtn。(在带/不带主题支持的 D7 中测试过)。


3

作为解决方法,您可以使用TSpeedButton,它不会获得焦点,因此永远不会出现焦点矩形。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接