あるサイトで
this.SetStyle(ControlStyles.DoubleBuffer, true);
this.SetStyle(ControlStyles.UserPaint, true);
this.SetStyle(ControlStyles.AllPaintingInWmPaint, true);
の設定をしておくとOnPaintメソッドでの描画がダブル・バッファリングされるとあります。

そこで、3つほど質問があります。

質問 (1) 上の設定で次の2つの描画方法でもダブル・バッファリングは有効でしょうか?

(a)PitureBox1と同サイズのBitmapオブジェクトを作成してPictureBox1.Imageに設定して
  おき、Bitmapオブジェクトに図形を描画したのちrefresh()を呼び出す。

(b)Paintイベントで呼び出されるハンドラPictureBox1_Paint内で図形を描画する。

つまり、

(a)ではrefreshの中でOnPaintが呼び出されるかどうか?、
(b)ではPictureBox1_Paintが呼び出された後にOnPaintが呼び出されるかどうか?

ということです。

質問(2) (a)(b)の方法でOnPaint自体は呼び出されるが、OnPaintをOverride
してここに図形を描画しないかぎり、ダブルバッファリングは有効にならない
でしょうか?

質問(3) (a)の方法自体がダブルバッファリングと同等だから上記の設定は必要ない
でしょうか?

いろんなサイトを見ているうちに、頭が混乱して質問が要領を得ていないと思いますが
よろしくお願いします。