我做了一个简单的按钮,但是当我在 win 表单之外单击时,我的按钮会出现黑色边框。顺便说一句,我设置BorderSize
为“0”,当我点击我的表单内部时它工作得很好。
this.button.FlatAppearance.BorderSize = 0;
这就是它的样子。
这似乎是一个焦点问题。当光标离开控件时尝试重置焦点。
将这些代码行添加到表单加载事件中。
btn.FlatStyle = FlatStyle.Flat;//You can also use the popup flat style
btn.FlatAppearance.BorderColor = btn.Parent.BackColor;
btn.FlatAppearance.BorderSize = 0;
一种简单的解决方法是将按钮的FlatAppearance.BorderColor设置为其Parent.BackColor
:
this.button1.FlatAppearance.BorderColor = this.button1.Parent.BackColor;
如果可以在某个时候将控件分配给另一个父 级,则可以将此属性设置为订阅ParentChanged事件(或覆盖OnParentChanged ,如果它是自定义控件)。
您还可以使用HandleCreated事件批量执行相同的操作,并让所有按钮(带有FlatStyle = FlatStyle.Flat
)订阅表单构造函数中的事件:
public Form1()
{
InitializeComponent();
foreach (Button button in this.Controls.OfType<Button>().Where(btn => btn.FlatStyle == FlatStyle.Flat))
{
button.HandleCreated += (s, e) => {
button.FlatAppearance.BorderColor = button.Parent.BackColor;
};
}
}