>>26
もういらんかもしれんけど

this.SetStyle(ControlStyles.DoubleBuffer, true);
this.SetStyle(ControlStyles.UserPaint, true);
this.SetStyle(ControlStyles.AllPaintingInWmPaint, true);
はコントロールまたはシステムが実装しているダブルバッファリング機能を有効にしている。
その上でBitmapに描画してからコントロールに転送すると(手動でダブルバッファリングすると)、

描画⇒バッファ(Bitmap)→コントロールによるイメージの検証→バッファ(コントロールまたはシステム、複数の可能性あり)→バッファ(画面)

みたいな流れになってしまい、トリプル以上のバッファリングになる。ってことで質問(3)はyes
でもダブルバッファを有効にしなくてもImageプロパティに設定した内容はちらついたりしないから上記コードがなくてもImageプロパティからの
転送はダブルバッファされているかもしれない(内部の実装は知らん)


OnPaintの説明見ると「Paintイベントを発生させます」とか書いてるけど、
再描画の要求→OnPaint→Paintイベントの発生

って感じになっている。
RefreshとかEndUpdate、Updateメソッドは再描画の要求を行う。