>>24

>>20です。ありがとうございます。返事が遅くなってすみません。
教えて君で申し訳ないですが、さらに確認させてください。

>(a)の方法は二重にダブルバッファリングしていて無駄。

これは
this.SetStyle(ControlStyles.DoubleBuffer, true);
this.SetStyle(ControlStyles.UserPaint, true);
this.SetStyle(ControlStyles.AllPaintingInWmPaint, true);
を設定したときの話でしょうか? つまり >>20 の質問(3)はyesでしょうか?

>コントロールのダブルバッファリングを有効にした上で、OnPaintとかPaintイベントで
>引数のe.Graphicsを使って描画するのが一般的かな

OnPaintはPaintイベントが発生した時やRefreshが呼び出されたときに
呼び出されると考えてよいでしょうか?

描画したいのは頂点(黒丸)と辺(直線)からなる3次元フレームワーク(グラフ構造)
です。図形データはList<T>などで管理しておき、これに基づいて描画しなければ
なりません。さらにマウスでこのフレームワークを回したり(視点を変更する)、
拡大縮小するので画面のチラツキがないようにしなければなりません。

>>20の(a)の方法でフレームワークを描くことも可能でしょうが、やはり
OnPaintとかPaintイベントハンドラで描画するのが吉のようですね。