Один простой обходной путь - установить 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;
};
}
}