>>558
引用先に書いてある通り内部でWindowを再作成してるのが原因だろう。
ディスパッチャーに乗せてスタイルの変更処理を遅延させてみた。
一応動いているがタイミングの問題が残るかもしれない。
delegate void ChangeBorderStyleHandler();
protected override void OnEnter(EventArgs e) {
  base.OnEnter(e);
  this.BeginInvoke(new ChangeBorderStyleHandler(ChangeBorderStyleFixed3D));
}
protected override void OnLeave(EventArgs e) {
  base.OnLeave(e);
  this.BeginInvoke(new ChangeBorderStyleHandler(ChangeBorderStyleNone));
}
private void ChangeBorderStyleFixed3D() {
  this.BorderStyle = BorderStyle.Fixed3D;
}
private void ChangeBorderStyleNone() {
  this.BorderStyle = BorderStyle.None;
}