C#WinForms - 自定义按钮不需要的边框,当表单未选中
问题描述:
我遇到了一个自定义按钮的问题,我在c#win窗体中创建了..当选择窗体时按钮显示正常,但只要我点击离开按钮上会出现一个边框。当发生这种情况时,一个很好的例子就是当桌面被点击时,表单仍然是最大化的,所以你可以看到它的内容。问题的图像可以看到下面:C#WinForms - 自定义按钮不需要的边框,当表单未选中
这不会发生在所有的按钮,只有当按钮被点击前(只在一个按钮出现在一个时间)。这导致我相信这是与按钮焦点提示有关,但它们被设置为false。边框设置为0,我也有tabstop设置为false。
有什么建议吗?
答
当你处理一个自定义按钮,你应该设置:
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
答
fuex的答案可以从理论上删除边框,但有一个错误,有时按钮仍然有焦点提示后,您更改按钮启用状态(我碰到.Net 4.0中的这个bug,我不知道错误已修复或不在以后的版本中) 。为了解决这个问题,你应该禁用focuscue propoerty
protected override bool ShowFocusCues
{
get
{
//return base.ShowFocusCues;
return false;
}
}
Metro?的WinForms? WPF? Silverlight的? Windows Phone? ASP.Net? MonoTouch的? – SLaks 2012-02-22 16:52:15
致歉,c#win表格 – Jpin 2012-02-22 16:53:53