А еще, если нажать кнопку, и форма потеряет фокус, то во круг кнопки появляется обводка даже если BorderSize = 0
Посмотреть вложение 23503
Как вариант, создать класс-наследник от Button и в конструкторе или в OnPaint`е вызвать:
SetStyle(ControlStyles.Selectable, false);
В этом случае кнопке нельзя будет присвоить фокус, т.е. табом теперь ее не выбирает.
UPD: Если же фокус нужен, то есть еще вариант:
Создаем класс-наследник от Button и переопределяем свойство ShowFocusCues на возвращение false:
protected override bool ShowFocusCues => false;
А в неактивном окне применяется цвет рамки, поэтому задаем цвет рамки прозрачный. Через панель свойств это нельзя сделать почему-то, поэтому идем в код и задаем цвет рамки вручную:
this.button1.FlatAppearance.BorderColor = System.Drawing.Color.FromArgb(0, 255, 255, 255);
В этом случае ShowFocusCues запретит показывать рамку вокруг текста при фокусе, а прозрачный цвет поможет визуально избавиться от рамки при потере фокуса окна (хотя сама рамка остается).
Можно еще попробовать поколдовать с GotFocus кнопки и Deactivate окна.