control継承したクラスで、再描画が必要なプロパティ/メソッド内でInvalidate()と、呼び出し側でプロパティ/メソッド実行後にcontrol.Invalidate()って内部の処理とか異なる?
後者だと描画が更新されない

↓こんな感じ
class PictureBox : ScrollableControl {
 public bool PreventInvalidate = false;
 public bool Magnify {
  get { return magnify; }
  set {
   magnify = value;
   〜処理〜
   if( PreventInvalidate ) Invalidate();
  }
 }
}

//前者
pictureBox.Magnify = true;
//後者
picbureBox.PreventInvalidate = true;
pictureBox.Magnify = true;
pictureBox.Invalidate();