删除选项卡c#winforms上的按钮边框

我的表单上有一个按钮,应用了平面样式并使用了背景图像,我已经从按钮中删除了所有边框,但是当我从另一个控件上选中按钮时,按钮周围会出现黑色边框。

这可以在下图中看到。 左侧是带有黑色边框的按钮,右侧是一个不同的按钮,但显示了取消按钮的外观。

纽扣

如果我在FlatAppearance部分中将FlatAppearance设置为0 ,则不会出现此边框。


进一步调查显示,只有当按钮是默认按钮时才会出现此边框。 您可以创建自己的按钮,它永远不会像这样显示此边框

 public class NoNotifyButton: System.Windows.Forms.Button { public override void NotifyDefault(bool value) { } } 

注意: NotifyDefault仍然故意为空。

您必须使用IButtonControl创建一个新的按钮类,并将IButtonControl更改为false:

 base.NotifyDefault(false); 

您可以将按钮属性“ForeColor”设置为透明

您不必创建派生类。 您可以将ForeColor设置为与父控件BackColor相同。 如下 :

 btn1.ForeColor = btn1.Parent.BackColor; 

我设法通过将按钮TabStop属性设置为False然后在按钮单击事件上使用此代码来解决此问题

 private void sendBackTab() { System.Windows.Forms.SendKeys.SendWait("+{TAB}"); }