C# 删除选项卡c上的按钮边框#winforms
我的窗体上有一个应用了平面样式并使用背景图像的按钮,我已删除了按钮上的所有边框,但当我从另一个控件上单击按钮时,按钮周围会出现黑色边框 这可以在下图中看到。左边是黑色边框的按钮,右边是另一个按钮,但显示了取消按钮的外观C# 删除选项卡c上的按钮边框#winforms,c#,winforms,button,tabs,border,C#,Winforms,Button,Tabs,Border,我的窗体上有一个应用了平面样式并使用背景图像的按钮,我已删除了按钮上的所有边框,但当我从另一个控件上单击按钮时,按钮周围会出现黑色边框 这可以在下图中看到。左边是黑色边框的按钮,右边是另一个按钮,但显示了取消按钮的外观 您必须使用IButtonControl创建一个新的按钮类,并将NotifyDefault更改为false: base.NotifyDefault(false); 如果我在FlatAppearance部分中将BoderSize设置为0,则不会获得此边框 进一步的调查显示,只有当
您必须使用
IButtonControl
创建一个新的按钮类,并将NotifyDefault
更改为false:
base.NotifyDefault(false);
如果我在
FlatAppearance
部分中将BoderSize
设置为0
,则不会获得此边框
进一步的调查显示,只有当按钮是默认按钮时,才会显示此边框。您可以创建自己的按钮,它不会像这样显示此边框
public class NoNotifyButton: System.Windows.Forms.Button
{
public override void NotifyDefault(bool value)
{
}
}
注意:
NotifyDefault
故意保持为空。您可以将按钮属性“ForeColor”设置为透明。您不必创建派生类。
可以将前景色设置为与父控件背景色相同。
详情如下:
btn1.ForeColor = btn1.Parent.BackColor;
通过将button TabStop属性设置为False,然后在button click事件中使用此代码,我成功地解决了这个问题
private void sendBackTab()
{
System.Windows.Forms.SendKeys.SendWait("+{TAB}");
}
可能重复:你必须做一些合理的事情来表明重点。这就是黑色矩形的作用。完全删除边框只会让用户在使用您的UI时感到迷茫和沮丧。我同意hans的观点,即使您删除边框,您也应该考虑添加一个高光(图像更改为焦点上的亮点或其他)。使用用户习惯的UI不是一个好主意,除非你100%确定自己在做什么。@Sean87嗨Sean&Hans,我确实打算在按钮被选中时添加一个突出显示,我会留下边框,只是它看起来不太好。嗨,我试着用这里的方法来做这件事(这就是突出显示的答案)但问题仍然存在。注意:默认按钮周围有黑色边框,聚焦按钮周围有灰色边框。我的代码使黑色边框消失;然而,灰色的仍然存在。