我的窗体上有一个按钮,应用了平面样式并使用了背景图像,我从按钮中删除了所有边框,但是当我从另一个控件上按下按钮时,黑色边框在按钮周围出现。删除选项卡上的按钮边框c#winforms
这可以在下图中看到。左边是右边带黑色边框的按钮是不同的按钮,但显示了取消按钮的外观。
我的窗体上有一个按钮,应用了平面样式并使用了背景图像,我从按钮中删除了所有边框,但是当我从另一个控件上按下按钮时,黑色边框在按钮周围出现。删除选项卡上的按钮边框c#winforms
这可以在下图中看到。左边是右边带黑色边框的按钮是不同的按钮,但显示了取消按钮的外观。
你必须使用IButtonControl
作出新的按钮类,改变NotifyDefault
为false:
base.NotifyDefault(false);
我没有得到这个边界,如果我在FlatAppearance
部分设置BoderSize
到0
。
进一步的调查显示,只有当按钮是默认按钮时才会出现此边框。你可以创建自己的按钮,就从来没有表现出这种边界这样
public class NoNotifyButton: System.Windows.Forms.Button
{
public override void NotifyDefault(bool value)
{
}
}
注:NotifyDefault
仍有意空。
嗨, 我尝试使用此处的方法(其突出显示的答案)http://social.msdn.microsoft.com/Forums/da-DK/winforms/thread/8d85e6dd-18ad-4503-9f0a-731a8d73d570 但问题仍然存在。 – shane12195 2012-04-03 00:30:05
注意:有一个黑色边框,围绕默认按钮绘制,灰色边框围绕着焦点按钮绘制。我的代码使黑色边框消失;然而,灰色的仍然存在。 – 2012-04-03 15:02:34
您可以将按钮属性“ForeColor”设置为透明
您不必创建派生类。 您可以将ForeColor设置为与父控件BackColor相同。 如下:
btn1.ForeColor = btn1.Parent.BackColor;
我设法解决这个问题通过设置按钮tab属性为False,然后使用此代码按钮单击事件
private void sendBackTab()
{
System.Windows.Forms.SendKeys.SendWait("+{TAB}");
}
可能重复:HTTP://计算器。 com/questions/148729 /如何设置变更删除焦点风格的按钮在c – 2012-04-01 17:21:19
你必须做一些合理的事情来表明焦点。这是黑色矩形的意图。完全删除它只会让用户在使用您的用户界面时感到失落和沮丧。 – 2012-04-01 17:37:43
我同意hans,即使你删除了边框,你应该考虑添加一个高光(对于焦点或其他更明亮的图像进行更改)。解决用户习惯的用户界面不是一个好主意,除非你100%确定你在做什么。 – 2012-04-02 14:04:26