我在使用c#win表单创建的自定义按钮时出现问题。选择表单时按钮显示正常,但只要我点击表单,按钮上就会出现边框。发生这种情况的一个很好的例子是单击桌面但表单仍然最大化,以便您可以看到其内容。问题的图像可以在下面看到:
所有按钮都不会发生这种情况,只有在按钮被点击之前(一次只出现在一个按钮上)。这让我相信它与按钮焦点提示有关,但这些设置为假。边框设置为0,我也将tabstop设置为false。
有什么建议吗?
答案 0 :(得分:90)
当您处理自定义按钮时,您应该设置:
button.TabStop = false;
button.FlatStyle = FlatStyle.Flat;
button.FlatAppearance.BorderSize = 0;
然后由于ButtonBase
不支持Color.Transparent
上的边框颜色,您可以通过设置Argb颜色来克服此问题:
button.FlatAppearance.BorderColor = Color.FromArgb(0, 255, 255, 255); //transparent
答案 1 :(得分:3)
fuex的答案可以在理论上删除边框,但是有一个错误,有时按钮在您更改按钮启用状态后仍然会有焦点提示。
(我在.Net 4.0中遇到了这个bug,我不知道在以后的版本中是否修复了这个bug)。
要解决此错误,您应该禁用ShowFocusCues
属性:
protected override bool ShowFocusCues
{
get
{
// return base.ShowFocusCues;
return false;
}
}