Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/304.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 删除选项卡c上的按钮边框#winforms_C#_Winforms_Button_Tabs_Border - Fatal编程技术网

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,我确实打算在按钮被选中时添加一个突出显示,我会留下边框,只是它看起来不太好。嗨,我试着用这里的方法来做这件事(这就是突出显示的答案)但问题仍然存在。注意:默认按钮周围有黑色边框,聚焦按钮周围有灰色边框。我的代码使黑色边框消失;然而,灰色的仍然存在。